2013-09-20 5 views
0

Привет, я новичок в 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(); 

        } 
    } 
} 

ответ

7

Вам не хватает скобок; измените свой код на:

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

Вы не можете преобразовать float в строку. Вы делаете:

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

И вы должны сделать, если заявление:

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

И вы кладете остальную часть вашего кода в операторе еще.