#include<stdio.h>
#include<math.h>
int main()
{
double a, b, c, disc, x1, x2, realpart, imagpart;
scanf("%lf %lf %lf", &a, &b, &c);//我试了加逗号(空格成功了)竟然显示错误。输出得到错误的两根
printf("The equation ");
if (fabs(a) <= 1e-6)
printf("is not a quadratic\n");
else
{
disc = b * b - 4 * a * c;
if (fabs(disc) <= 1e-6)
printf("has two equal roots:%8.4f\n", -b / (2 * a));
else //if嵌套不太熟的话就else后加if或直接在else后加{}OK了
if (disc > 1e-6)
{
x1 = (-b + sqrt(disc)) / (2 * a);
x2 = (-b - sqrt(disc)) / (2 * a);
printf("has distinct real roots:%8.4f and %8.4f\n", x1, x2);
}
else
{
realpart = -b / (2 * a);
imagpart = sqrt(-disc) / (2 * a);
printf("has complex roots:\n");
printf("%8.4f + %8.4fi\n", realpart, imagpart);
printf("%8.4f - %8.4fi\n", realpart, imagpart);
}
}
return 0;
}
如下:
当scanf(“%lf,%lf,%lf”,&a,&b,&c);时(两个根),结果
部分代码
随便在哪里复制一段粘贴输入
哈哈,竟然复制时字符之间没有间隔。是我见识短了。不太明白为什么输入会有空格,希望懂得大神可以解答一下。