首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

C# 控制台應用:一元二次方程求根器

     編輯:C++ 入門

C# 控制台應用:一元二次方程求根器

本文展示一個完整的 C# 控制台程序,實現一元二次方程 ax² + bx + c = 0 的交互式求解。程序包含輸入驗證、判別式分支處理、根公式計算與格式化輸出。

核心邏輯

  1. 輸入:提示用戶依次輸入 a、b、c(double 類型)。
  2. 判別式:delta = b*b - 4*a*c。
    • delta < 0:無實數根,提示「此方程無實數解!」
    • delta == 0:雙重根 x1 = x2 = -b / (2*a),提示「只有一個解!」
    • delta > 0:兩個互不相等實根 x1 = (-b + √delta) / (2*a), x2 = (-b - √delta) / (2*a)。
  3. 輸出:使用 Console.WriteLine 格式化顯示根值。

代碼完整版(C#)


using System;
namespace ConsoleApplication3 {
    class Program {
        static void Main(string[] args) {
            double a, b, c, X1, X2;
            Console.WriteLine("--------求一元二次方程:ax^2+bx+c=0 --------");
            Console.Write("請輸入一個值給a:"); a = Convert.ToDouble(Console.ReadLine());
            Console.Write("請輸入一個值給b:"); b = Convert.ToDouble(Console.ReadLine());
            Console.Write("請輸入一個值給c:"); c = Convert.ToDouble(Console.ReadLine());
            double delta = b * b - 4 * a * c;
            if (delta < 0) {
                Console.WriteLine("此方程無實數解!");
            } else if (delta == 0) {
                X1 = X2 = -b / (2 * a);
                Console.WriteLine("只有一個解!X1=X2={0}", X1);
            } else {
                X1 = (-b + Math.Sqrt(delta)) / (2 * a);
                X2 = (-b - Math.Sqrt(delta)) / (2 * a);
                Console.WriteLine("X1的值為:{0}\tX2的值為:{1}", X1, X2);
            }
            Console.ReadKey();
        }
    }
}

注意事項

  • 原文代碼存在運算符優先級錯誤:/ 2 * a 應為 / (2 * a),已在上方修正。
  • 輸出文本中「X的值為」應為「X2的值為」,已修正。
  • Console.ReadKey() 防止控制台閃退。
  • 未處理 a=0 退化為一元一次方程的情況,實際項目建議補充判斷。

運行截圖說明

文中附三張截圖分別展示:
1. 兩實根情況(a=1,b=-3,c=2 → x1=2, x2=1)
2. 雙重根情況(a=1,b=-2,c=1 → x1=x2=1)
3. 無實根情況(a=1,b=1,c=1 → delta=-3)

總結

經典入門級數學計算程序。展示了 C# 基礎 I/O、數學庫調用、分支結構與格式化輸出。適合初學者練習控制台交互與浮點數運算細節(如判別式精度、除法優先級)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved