乍一看就是一元二次方程的根的通用求法
妖怪已经给了你最关键的提示 也就是程序少一个头文件 不然这个平方根函数在哪里定义的?
但是加上了定义include <math.h>以后 问题还是很多的
sqrt函数的定义是
double sqrt(double x);
也就是该函数接受一个双精度值 返回一个双精度值 这是第一个问题
第二个问题是你除法运算的时候 你用的是/ 但是他运算完了 还是int么?
这是第二个问题
而假如a b c取值2 3 4那么到开方之前 p的值是-23 开放后q就等于0
这是第三个问题...
我们可以通过如下程序来检查这些问题:
复制内容到剪贴板
代码:
#include <stdio.h>
#include <math.h>
int main(void)
{
int a,b,c,n,m,o,p,s;
double q,r,x;
scanf("%d,%d,%d",&a,&b,&c);
n=b*b; /*求b的平方*/
printf("n=%d\n",n);
m=a*c; /*求a与c的乘积*/
printf("m=%d\n",m);
o=4*m; /*求4ac*/
printf("o=%d\n",o);
p=n-o; /*求b的平方-4ac*/
printf("p=%d\n",p);
q=sqrt(p); /*求b的平方-4ac的平方根*/
printf("q=%d\n",q);
r=-b+q; /*求-b与b的平方-4ac的平方根的差*/
s=2*a; /*求2a的值*/
x=r/s; /*求出x*/
printf("x=%d\n",x); /*输出x的值*/
return 0;
}多用printf的目的是为了检查值到什么地方出了问题 提示到这里结束