初学C语言,高手看一下这个程序有什么错误

#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c,x1,x2,q,p;
printf("请输入a,b,c\n");
scanf("%1f,%1f,%1f", a, b, c);
p=b*b-4*a*c;
if (p<0)
{
printf("无解");
}
else
{
p=sqrt(p);
x1=(-b+p)/(2*a);
x2=(-b-p)/(2*a);
printf("x1=%1f,x2=%1f",x1,x2);
}

return 0 ;

}
scanf里的取地址符在源程序中有

scanf("%1f,%1f,%1f", a, b, c);应该为scanf("%1f,%1f,%1f", &a, &b, &c);追问

在这里忘记打了,可是在编程中加了&还是不行啊
虽然程序可以运行,但是总是显示无解

追答

你输入的是什么数值?说明p=b*b-4*a*c;这一句计算出来的数值小于零。你再仔细检查一下,先手工算一下

追问

1,2,1
1,-3,2

追答

改成scanf("%f,%f,%f", a, b, c);试一下

追问

都不行啊
你也初学吗

追答

不是,我已经编程十年左右了。

scanf("%lf,%lf,%lf",&a,&b,&c); 这一句有问题,里面的lf不是1f

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜