二次方程求解器不起作用
quadratic equation solver that not work
我创建了这个方程求解器(我知道这很令人困惑,也许我犯了愚蠢的错误,但我最近才开始),
但它不起作用。它不会在控制台上打印 x1 和 x2。
你能帮帮我吗?
Console.WriteLine("input the coefficent a");
double a = int.Parse(Console.ReadLine());
Console.WriteLine("input the coefficent b");
double b = int.Parse(Console.ReadLine());
Console.WriteLine("input coefficent c");
double c = int.Parse(Console.ReadLine());
double D = Math.Pow(b,2) - 4*(a*c);
Console.WriteLine(D);
double x1;
double x2;
if (Convert.ToBoolean(D = 0))
{
x1 = Convert.ToInt32((-b)) / (2 * Convert.ToInt32(a));
x2 = Convert.ToInt32((-b)) / (2 * Convert.ToInt32(a));
Console.WriteLine(x1);
Console.WriteLine(x2);
}
else if (Convert.ToBoolean(D > 0))
{
x1 = (-b - (Math.Sqrt( Math.Pow(b,2) - 4 * a * c)) / 2 * a);
x2 = (-b + (Math.Sqrt(Math.Pow(b,2) - 4 * a * c)) / 2 * a);
Console.WriteLine(x1);
Console.WriteLine(x2);
}
else if (Convert.ToBoolean(D < 0))
Console.WriteLine("the equation has no real roots");
输出为:
input the coefficent a
1
input the coefficent b
3
input coefficent c
2
1
Premere un tasto per continuare . . .
if(Convert.ToBoolean(D = 0))
不是你想要的。它将 0 分配给 D,returns 0 并将其转换为 false。您想要 if (D == 0)
以及 else if(D > 0)
和 else if(D < 0)
单个 = 赋值给变量,== 比较它们。
你也不需要在 if 子句中将条件转换为布尔值,如果你需要这样做,如果你做错了什么,你应该三思而后行。
我创建了这个方程求解器(我知道这很令人困惑,也许我犯了愚蠢的错误,但我最近才开始), 但它不起作用。它不会在控制台上打印 x1 和 x2。 你能帮帮我吗?
Console.WriteLine("input the coefficent a");
double a = int.Parse(Console.ReadLine());
Console.WriteLine("input the coefficent b");
double b = int.Parse(Console.ReadLine());
Console.WriteLine("input coefficent c");
double c = int.Parse(Console.ReadLine());
double D = Math.Pow(b,2) - 4*(a*c);
Console.WriteLine(D);
double x1;
double x2;
if (Convert.ToBoolean(D = 0))
{
x1 = Convert.ToInt32((-b)) / (2 * Convert.ToInt32(a));
x2 = Convert.ToInt32((-b)) / (2 * Convert.ToInt32(a));
Console.WriteLine(x1);
Console.WriteLine(x2);
}
else if (Convert.ToBoolean(D > 0))
{
x1 = (-b - (Math.Sqrt( Math.Pow(b,2) - 4 * a * c)) / 2 * a);
x2 = (-b + (Math.Sqrt(Math.Pow(b,2) - 4 * a * c)) / 2 * a);
Console.WriteLine(x1);
Console.WriteLine(x2);
}
else if (Convert.ToBoolean(D < 0))
Console.WriteLine("the equation has no real roots");
输出为:
input the coefficent a
1 input the coefficent b
3
input coefficent c
2
1
Premere un tasto per continuare . . .
if(Convert.ToBoolean(D = 0))
不是你想要的。它将 0 分配给 D,returns 0 并将其转换为 false。您想要 if (D == 0)
以及 else if(D > 0)
和 else if(D < 0)
单个 = 赋值给变量,== 比较它们。
你也不需要在 if 子句中将条件转换为布尔值,如果你需要这样做,如果你做错了什么,你应该三思而后行。