c言語 プログラミング(初心者)
解を判定するプログラミングを作成したのですが、a,b,cを0,1,2と入力したときに解に0.00000が出てきて解がおかしくなります。
どなたか詳しい方教えてください。また簡潔にできる点などありましたらご指摘お願いします。
#include <stdio.h>
#include <math.h>
int main (void) {
double a,b,c,d,x1,x2;
printf("ax^2+bx+c=0 の係数を入力してください\n");
scanf("%lf %lf %lf",&a,&b,&c );
if(a==0){
if(b==0)
{
printf("解は存在しません\n");
} else {
x1=-c/b;
printf("解は %f です\n",x1);
}
} else {
d=b*b-4*a*c;
if(d>=0){
x1=(-b+sqrt(d))/(2.0*a);
x2=(-b-sqrt(d))/(2.0*a);
if(d==0){
printf("解は %f (重解)です\n",x1);
} else {
printf("解は %f と %f です\n",x1,x2);
}
} else {
printf("実数解は存在しません(虚数解)\n");
}
}
return 0;
}
お礼
-finput-charset=iso-2022-jp -fexec-charset=cp932は読み取れないそうです…