Logic-闫 发表于 2019-1-22 17:01:47

哪里有错呢?

题目:求a2+bx+c=0方程的两个根,a,b,c由键盘输入,设b2-4ac>0。
程序:
#include "math.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.2f\nx2=%5.2f\n", x1,x2);
}
无论输入什么值,打出来的x1,x2都是“-1.#J”,这是怎么回事?

culifoo 发表于 2019-1-26 14:25:09

scanf("a=%lf,b=%lf,c=%lf", &a,&b,&c);
你scanf里这么写就意味着你输入的时候要把a=和b=和c=还有ab后面两个逗号都敲进去
否则赋值失败
其他问题我没有发现

Logic-闫 发表于 2019-1-27 09:59:39

culifoo 发表于 2019-1-26 14:25
scanf("a=%lf,b=%lf,c=%lf", &a,&b,&c);
你scanf里这么写就意味着你输入的时候要把a=和b=和c=还有ab后面两 ...

明白了,多谢指点!
页: [1]
查看完整版本: 哪里有错呢?