有關C語言的語法問題。
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,d,x1,x2,x;
printf("請分別輸入一元二次方程的二次項,一次項,常數項");
scanf("%f,%f,%f",&a,&b,&c);
d=b*b-4*a*c;
if(d>0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
pritnf("x1=%f,x2=%f",x1,x2);
}
else if(d==0)
{
x=-b/(2*a);
printf("x=%f",x);
}
else(d<0)
{
printf("無解");
}
getchar();
}
這個程序錯在哪些地方?
最佳回答:
scanf句應該寫為scanf("%f%f%f",&a, &b, &c);
-
補充:
-
getchar();沒有錯
-
補充:
-
else(d<0)沒有這種寫法
-
補充:
-
float a,b,c,d,x1,x2,x;改為double類型吧 不然會溢出
-
補充:
-
給你一個完整代碼,你自己對照一下:
#include<stdio.h>
#include<math.h>
void main()
{
double a,b,c,d,x1,x2,x;
printf("請分別輸入一元二次方程的二次項,一次項,常數項");
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
if(d>0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f",x1,x2);
}
else if(d==0)
{
x=-b/(2*a);
printf("x=%f",x);
}
else
{
printf("無解");
}
getchar();
}