using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
double x1, x2; //声明2个变量用于存储方程的两个解
Console.WriteLine("求一元二次方程(ax^2+bx+c=0)");
Console.WriteLine("请输入a的值:");
double a = Convert.ToInt32(Console.ReadLine()); //声明a,并将输入的字符串转换为32位整数存储到a
Console.WriteLine("请输入b的值:");
double b = Convert.ToInt32(Console.ReadLine()); //声明b,并将输入的字符串转换为32位整数存储到b
Console.WriteLine("请输入c的值:");
double c = Convert.ToInt32(Console.ReadLine()); //声明c,并将输入的字符串转换为32位整数存储到c
double dt; //声明一元二次方程的判别式
dt = Math.Pow(b, 2) - 4 * a * c; //一元二次方程的判别式为b^2 - 4ac
Console.WriteLine("判别式为:{0}", dt);
if (dt == 0) //如果判别式=0,即该方程有1个实数解。
{
x1 = x2 = -b / 2 * a; //x1和x2都等于同样的一个值 -b/2a
Console.WriteLine("该方程只有一个解集:{0}", x1);
}
else if (dt > 0) //如果判别式大于0,即该方程有2个实数解
{
x1 = (-b + Math.Sqrt(dt)) / 2 * a; //x1 = -b + √(判别式) / 2a
x2 = (-b - Math.Sqrt(dt)) / 2 * a; //x2 = -b - √(判别式) / 2a
Console.WriteLine("该方程有两个解集,x1={0},x2={1}.", x1, x2);
}
else //如果判别式小于0,即方程没有实数解
{
Console.WriteLine("该方程没有实数解");
}
Console.ReadLine(); //等待阅读
}
}
}
输出
<img src="https://img-blog.csdn.net/20141125232934718?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTUFsdmVxaXUxMjM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />