函数解一元二次方程

  public int qiufangcheng(int a, int b, int c, out double x1, out double x2)
        {
            int jieguo = 0;
            x1 = 0;
            x2 = 0;
            if (a == 0)
            {
                jieguo = -1;
            }
            else 
            {
                int dert = b * b - 4 * a * c;
                if (dert < 0)
                {
                    jieguo = 0;
                }
                if (dert == 0)
                {
                    jieguo = 1;
                    x1 = -b / 2 * a;
                    x2 = -b / 2 * a;
                }
                if (dert > 0)
                {
                    jieguo = 2;
                    x1 = (-b + Math.Sqrt(dert)) / 2 * a;
                    x2 = (-b - Math.Sqrt(dert)) / 2 * a;
                }
            }
            return jieguo;
        }




   static void Main(string[] args)
        {
              while (true)
            {
                Console.Write("a=");
                int a = int.Parse(Console.ReadLine());
                Console.Write("b=");
                int b = int.Parse(Console.ReadLine());
                Console.Write("c=");
                int c = int.Parse(Console.ReadLine());
                double x1;
                double x2;
                int jieguo = new Program().qiufangcheng(a, b, c, out x1, out x2);
                if (jieguo == 0)
                {
                    Console.WriteLine("无实根");
                }
                if (jieguo == -1)
                {
                    Console.WriteLine("不是一元二次方程");
                }
                if (jieguo == 1)
                {
                    Console.WriteLine("相等的根x1={0},x2={1}", x1, x2);
                }
                if (jieguo == 2)
                {
                    Console.WriteLine("两个不相等的根x1={0},x2={1}", x1, x2);
                }
            }
          
            Console.ReadLine();
        }

 

posted on 2015-06-17 09:09  魔幻世界  阅读(226)  评论(0编辑  收藏  举报