二次方程的代码给出了错误的答案

时间:2013-09-20 00:24:31

标签: c# math quadratic

您好我是C#的初学者。我已经为二次方程做了这个代码。它运行但没有给出正确的答案。

using System;
using System.Diagnostics;


namespace mynamespace
{
    class myclass
    {
        static void Main(string[] args)
        {
            float a, b, c, x1, x2;
            Console.Write("Enter Value in a");
                a=Convert.ToSingle(Console.ReadLine());
            Console.WriteLine("Enter Value in b");
                b=Convert.ToSingle(Console.ReadLine());
            Console.WriteLine("Enter Value in c");
                c=Convert.ToSingle(Console.ReadLine());

            x1=(-b + Math.Sqrt ( b*b - 4*a*c)/(2*a));
            x2=(-b - Math.Sqrt ( b*b - 4*a*c)/(2*a));
            Console.WriteLine(x1);
            Console.WriteLine(x2);
            Console.ReadKey();

                    }
    }
}

2 个答案:

答案 0 :(得分:7)

你错过了一组括号;将您的代码更改为:

x1=((-b + Math.Sqrt ( b*b - 4*a*c))/(2*a));
x2=((-b - Math.Sqrt ( b*b - 4*a*c))/(2*a));

答案 1 :(得分:0)

您无法将float转换为字符串。你这样做:

a = float.Parse(Console.Readline());

你必须做一个if语句:

if((b*b - 4*a*c) < 0)
{
   Console.WriteLine("There are no real roots!");
}

然后将其余代码放在else语句中。