零基础C语言入门009出现问题求解答
#include <stdio.h>#include <math.h>
#include <stdlib.h>
void main()
{
double a,b,c,disc,x1,x2,p,q;
scanf("a=%lf,b=%lf,c=%lf",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p+q;
x2=p-q;
printf("\nx1=%5.2lf\nx2=%5.2lf\n",x1,x2);
system("pause");
}
无论输入什么数字,X1和X2的值都是1.#J
检查代码我也是在检查不出来什么问题
求帮助
我只是路过打酱油的。:lol scanf("a=%lf,b=%lf,c=%lf",&a,&b,&c)是这一行的问题。应该这样写scanf("%lf,%lf,%lf",&a,&b,&c);,输入的格式不对。你在看看输入函数的用法就知道了。 支持3楼 强烈支持3楼ing…… 3楼是大神 向三楼大神敬礼 路过学习!!!! 你这个程序有两点错误:第一个错误是你的输出格式有错误,应该是lf格式的double型输出格式;
第二个错误是导致你输出总是出现错误的最直接原因,你的输入数据有问题,你应该保证输入的b的平方减去4*a*c的结果是正数,要不然你的sqrt是不能开负数的平方的,所以就出错了。 我只是路过打酱油的。 强烈支持楼主ing…… scanf("a=%lf,b=%lf,c=%lf",&a,&b,&c);
这个scanf语句 里面的桥口是a= ,b=, 所以你运行的时候,输入也必须是a=? b? 要严格按照格式来的
页:
[1]