我也输入include<math.h>
但它仍然无效。人们说要进入-Im但我是新手,我在哪里放-Im以及如何解决这个问题。
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main()
{
float a=0, b=0, c=0, root1=0, root2=0;
printf("Enter the value of a,b and c to determine the roots\n");
scanf("%f%f%f",&a,&b,&c);
root1=(-b+sqrt(b*b-4*a*c))/(2*a);
root1=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("The first roots of the quadratic equation are\nFirst root=%.1f\nSecond root=%.1f",root1,root2);
return 0;
}
答案 0 :(得分:0)
两件事:首先你复制粘贴的“root1”两次,这样你就会失去“加号”值,而root2将会为零。其次,为了其他人的好处,问题很可能是在编译时,谷歌的答案是:
http://www.cs.cf.ac.uk/Dave/C/node17.html
你应该测试虚数值:
if(b*b-4*a*c < 0){
printf("error: complex solution unsupported, see http://en.wikipedia.org/wiki/Square_root\n");
exit(1);
}
答案 1 :(得分:0)
这里有一个复制粘贴错误:
root1=(-b+sqrt(b*b-4*a*c))/(2*a);
root1=(-b-sqrt(b*b-4*a*c))/(2*a);
应该是:
root1=(-b+sqrt(b*b-4*a*c))/(2*a);
root2=(-b-sqrt(b*b-4*a*c))/(2*a);
此外,您可能需要链接数学库,例如
$ gcc -Wall foo.c -o foo -lm