fと置く前は正常に動作しなかったのでその理由と、a=1,b=0,c=0と代入したときに実数解はありませんとなってしまう理由を教えていただきたいです。
#fと置く前
int main(void) {
int a,b,c;
printf("整数 a を入力してください");
scanf("%d\n",&a);
printf("整数 b を入力してください");
scanf("%d\n",&b);
printf("整数 c を入力してください");
scanf("%d\n",&c);
double d,e;
if(bb-4ac>0){
d=((double)-b+sqrt((double)bb-4ac))/(2a);
e=((double)-b-sqrt((double)bb-4ac))/(2a);
printf("実数解は%fと%fです",d,e);
}
else if(bb-4ac=0){
d=-b/(2a);
printf("実数解は%f(重解)です",d);
}
else {
printf("実数解はありません");
}
return 0;
}
#fと置く前に実行したときに出るエラー
Compilation error #stdin compilation error #stdout 0s 4564KB
prog.c: In function ‘main’:
prog.c:17:18: error: lvalue required as left operand of assignment
else if(bb-4ac=0){
^
prog.c:6:1: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d\n",&a);
^~~~~~~~~~~~~~~~
prog.c:8:1: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d\n",&b);
^~~~~~~~~~~~~~~~
prog.c:10:1: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d\n",&c);
^~~~~~~~~~~~~~~~
#fと置いた後
int main(void) {
int a,b,c;
printf("整数 a を入力してください");
scanf("%d\n",&a);
printf("整数 b を入力してください");
scanf("%d\n",&b);
printf("整数 c を入力してください");
scanf("%d\n",&c);
double d,e,f;
f = (double)bb-4ac;
if(f>0){
d=((double)-b+sqrt(f))/(2a);
e=((double)-b-sqrt(f))/(2a);
printf("実数解は%fと%fです",d,e);
}
else if(f=0){
d=-b/(2a);
printf("実数解は%f(重解)です",d);
}
else {
printf("実数解はありません");
}
return 0;
}
回答1件
あなたの回答
tips
プレビュー