课后题问题
#include<stdio.h>#include<math.h>
void main()
{ double b,a,c,q,x1,p,x2;
printf("请输入a,b,c:");
scanf("%lf,%lf,%lf",&a,&b,&c);
p = -b/(2.0*a);
q = sqrt(b*b-4.0*a*c)/(2.0*a);
x1 = p+q;
x2 = p-q;
printf("答案:x1 = %f \nx2 = %lf",x1,x2);
}
谁告诉我哪错了??
运行结果
请输入a,b,c:3.0,4.0,5.0
答案:x1 = -1.#IND00
x2 = -1.#IND00
q = sqrt(b*b-4.0*a*c)/(2.0*a);
你输入的值使b*b-4.0*a*c为负,所以 sqrt(b*b-4.0*a*c)对一个负数进行开平方,得到特殊值 Story没用代码功能
原因是发完帖子才看见使用代码功能的帖子:curse: scanf("%lf,%lf,%lf",&a,&b,&c);
改为scanf("%lf %lf %lf",&a,&b,&c); 一样的只是输入格式不一样
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,disc,x1,x2,p,q;
scanf("%lf,%lf,%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("x1=%5.2f\n\nx2=%5.2f\n",x1,x2);
}
我这样可以 我看了一下,你的程序应该没问题,换个数试试,比如1,2,1,我猜是你的那组数的运算结果它表示不出来。
页:
[1]