C中二次方程的计算误差



我写了这个程序来计算二次方程:

#include <stdio.h>
#include <math.h>
int main()
{
printf("ax%c + bx + c = 0", 253);
while (1 == 1)
{
float a, b, c;
printf("na = ");
scanf("%f", &a);
printf("b = ");
scanf("%f", &b);
printf("c = ");
scanf("%f", &c);
if (a == 0)
{
if (b == 0)
printf("aThis equation is wrong");
else
printf("x = %g", -(c / b));
}
else
{
if ((b * b) == (4 * a * c))
printf("x = %g", -(b / (2 * a)));
else if ((b * b) > (4 * a * c))
{
printf("x = %gn", ((-b + sqrt(((b * b) - (4 * a * c)))) / (2 * a)));
printf("x = %gn", ((-b - sqrt(((b * b) - (4 * a * c)))) / (2 * a)));
}
else
{
printf("x = %g + %gin", (-b / (2 * a)), (sqrt(-((b * b) - (4 * a * c))) / (2 * a)));
printf("x = %g + %gin", (-b / (2 * a)), (-sqrt(-((b * b) - (4 * a * c))) / (2 * a)));
}
}
}
return 0;
}

这就是错误:

PS F:PARSAProgrammingC> cd "f:PARSAProgrammingC" ; if ($?) { gcc 11.c -o 11 } ; if ($?) { .11 }
Program '11.exe' failed to run: Access is deniedAt line:1 char:71
+ ... PARSAProgrammingC" ; if ($?) { gcc 11.c -o 11 } ; if ($?) { .11 }
+                                                                    ~~~~. 
At line:1 char:71
+ ... PARSAProgrammingC" ; if ($?) { gcc 11.c -o 11 } ; if ($?) { .11 }
+                                                                    ~~~~
+ CategoryInfo          : ResourceUnavailable: (:) [], ApplicationFailedException
+ FullyQualifiedErrorId : NativeCommandFailed

我认为这个错误是因为";否则如果";以及";否则";在第26至35行。因为当我评论他们两个(只是两个(时,不会给出错误。但我不知道为什么!我将VS代码用于IDE。

C代码在我的PC上编译并运行正常(VStudio 2019(。错误似乎在于你在操作系统级别编译代码的方法:

cd "f:PARSAProgrammingC" ; if ($?) { gcc 11.c -o 11 } ; if ($?) { .11 }

它看起来像是一些与目录权限有关的错误,或者是一些不存在的文件。

最新更新