これは私が二次式の計算を構築しようとしているプログラムは誤った答えと "-nan(ind)"を返します。私は何を間違えたのですか?
#include <stdio.h>
#include <math.h>
void main()
{
float a = 0, b = 0, c = 0;
float disc = b*b - 4 * a*c;
float sing = -b/(2 * a);
float lin = -c/b;
float quad1 = (-b + (disc))/(2 * a);
float quad2 = (-b - (disc))/(2 * a);
printf_s("Please enter the coefficients a, b, and c\n");
scanf_s("%g %g %g", &a, &b, &c);
if (a == 0)
{
if (b == 0)
{
if (c == 0)
{
printf_s("There are infinite solutions\n");
}
else
{
printf_s("There is no solution\n");
}
}
else
{
printf_s("The singular solution is %g\n", lin);
}
}
else
{
if (disc < 0)
{
printf_s("There is no real solution\n");
}
else
{
if (disc == 0)
{
printf_s("The singular solution is %g\n", sing);
}
else
{
printf_s("The solutions are x1 = %g and x2 = %g\n", quad1, quad2);
}
}
}
}
私のコードです。私はa = 2、b = 1、c = -21を接続すると、x = 3とx = -3.5を受け取ることを期待しています。 代わりに "The singular solution is -nan(ind)"という出力が得られます これは意味ですか?どうすれば修正できますか?