求助一个c语言程序。。。怎么输入b和c的值之后,输出b和c不对阿?!

来源:百度知道 编辑:UC知道 时间:2024/09/21 17:59:34
#include <stdio.h>
#include <math.h>
void main()
{
float x1,x2,a,b,c,sum;
printf("Please input a,b,c\n");
scanf("%f,%f,%f\n",&a,&b,&c);
sum=(b*b-4.0*a*c);
printf("a=%f,b=%f,c=%f\n",a,b,c);
printf("sum=%f\n",sum);
if (sum>0.0)
{x1=(-b+sqrt(sum))/(2*a);
x2=(-b-sqrt(sum))/(2*a);
printf("%f%f",x1,x2);}
else
if (sum<0.0) {printf("error!\n");}
else {x1=(-b)/(2*a); printf("x1=x2=%f\n",x1);}
}
我的意思是,比如我输入a,b,c分别是3,5,2,结果输出只有a是对的,是3,b和c是两个乱七八糟的数字,我想是不是定义a,b,c的时候有错? 还是我家c语言软件出问题了。。。~!???

谢谢~!

你输入数的时候要每个数后面要加个逗号,才能输出每个数,不然的话,后面连个数就相当于没有输入而显示乱码!还有scanf里面的\n去掉比较好!

语句的顺序改了一下,也调了一下结构。其实在句sum=(b*b-4.0*a*c);中将float 改为 double.所以会出现显示不一样的结果。

#include <stdio.h>
#include <math.h>
void main()
{
float x1,x2,a,b,c,sum;
printf("Please input a,b,c\n");
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
printf("a=%f\nb=%f\nc=%f\n",a,b,c);
sum=(b*b-4.0*a*c);
printf("sum=%f\n",sum);
if (sum>0.0)
{x1=(-b+sqrt(sum))/(2*a);
x2=(-b-sqrt(sum))/(2*a);
printf("%f\n%f\n",x1,x2);}
else
if (sum<0.0) {printf("error!\n");}
else {x1=(-b)/(2*a); printf("x1=x2=%f\n",x1);}
}

输入数据要加空格或者回车。如:5 6 7

scanf("%f,%f,%f\n",&a,&b,&c); 呵呵.是的.格式化输入.双引号里的东西,除了格式符以外,其它的都要原样输入才行.朋友.

建议你把scanf后面的\n去了。
<