写一个方法来解析一元二次方程。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 函数_解一元二次方程_
{
    class Program
    {
        public  static  int jiefangcheng(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;
                }
                else
                {
                    if (dert > 0)
                    {
                        jieguo =2;
                        x1 = (-b + Math.Sqrt(dert)) / (2 * a);
                        x2 = (-b - Math.Sqrt(dert)) / (2 * a);
                    }
                    else
                    {
                        jieguo = 1;
                        x1 = x2 = -b / (2 * a);
                    }
                }
            }
            return jieguo;
        }
        static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("请输入a的值:");
                int a = int.Parse(Console.ReadLine());
                Console.WriteLine("请输入b的值:");
                int b = int.Parse(Console.ReadLine());
                Console.WriteLine("请输入c的值:");
                int c = int.Parse(Console.ReadLine());
                double x1, x2;
                int jieguo = jiefangcheng(a, b, c, out x1, out x2);
                if (jieguo == -1)
                {
                    Console.WriteLine("不是一元二次方程");
                }
                else if (jieguo == 0)
                {
                    Console.WriteLine("无实根");
                }
                else if (jieguo == 1)
                {
                    Console.WriteLine("有两个相等的实根分别为x1={0},x2={1}", x1, x2);
                }
                else
                {
                    Console.WriteLine("有两个不相等的实根分别为x1={0},x2={1}", x1, x2);
                }
            }
            Console.ReadLine();
        }
    }
}

 switch来代替if 结构

   switch (jieguo)
                {
                    case -1: Console.WriteLine("不是一元二次方程");
                        break;
                    case 0: Console.WriteLine("无实根");
                        break;
                    case 1: Console.WriteLine("有两个相等的实根,分别为x1=x2={0}",x1);
                        break;
                    case 2: Console.WriteLine("有两个不相等的实根,分别为x1={0},x2={1}",x1,x2);
                        break;
}

 

posted @ 2015-06-16 15:41  骏码信息  阅读(251)  评论(0编辑  收藏  举报