首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 判斷閏年語句錯誤修正:完整條件分支與整數型別建議

     編輯:程式設計綜合問答

原始問題

double y;
Console.WriteLine("請輸入年份:");
y = Convert.ToDouble(Console.ReadLine());
if (y % 400 == 0)
{
    Console.WriteLine("該年份為閏年.");
}
else if ((y % 4 == 0) && (y % 100 != 0))
{
    Console.WriteLine("該年份為閏年.");
}
else if ((y % 4 > 0) && (y % 100 > 0))
{
    Console.WriteLine("該年份非閏年.");
}
Console.ReadLine();

錯誤原因

  • 使用 double 儲存年份,進行模運算(%)可能產生浮點數精度問題,應使用 int。
  • 缺少完整的 else 分支,例如 2300 年既不能被 400 整除,也不能被 4 且不被 100 整除(實際上 2300 能被 4 整除也能被 100 整除,但不能被 400 整除,屬於平年),因此沒有任何分支符合,導致沒有輸出。

修正範例

int year = Convert.ToInt32(Console.ReadLine());
if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
{
    Console.WriteLine("該年份為閏年.");
}
else
{
    Console.WriteLine("該年份非閏年.");
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved