C 程序判断闰年

如何使用 If 语句、嵌套 If 语句和 Else If 语句编写 C 程序来判断闰年或平年?在开始编写判断闰年的程序之前,让我们先了解其背后的逻辑和定义。

普通年份有 365 天,而 C 语言中的闰年有 366 天。这一额外的一天被加到了二月份,所以我们有了 2 月 29 日。

所有能被 4 整除的年份都是闰年,但世纪年除外。世纪年是指以 00 结尾的年份,例如 1200、1300、2400、2500 等(显然它们能被 100 整除)。对于这些年份,我们需要进一步计算来判断是否为闰年。

  • 如果世纪年能被 400 整除,则为闰年。
  • 如果不能被 400 整除,则不是闰年。

使用 If 语句判断闰年的 C 程序

此示例允许用户输入任何值。然后,此程序将使用 If 语句检查用户输入的是闰年还是平年。

#include <stdio.h>

int main()
{
  int yr;
 
  printf("\n Please Enter any number you wish \n ");
  scanf("%d", &yr);
 
  if (( yr%400 == 0)|| (( yr%4 == 0 ) &&( yr%100 != 0)))
      printf("\n %d is a Leap. \n", yr);
  else
      printf("\n %d is not. \n", yr);
  
   return 0;
}
C Program to Check Leap Year using If Else

我们来检查一个普通年份。


 Please Enter any number you wish 
 1300

 1300 is not. 

在此判断闰年的 C 程序示例中,我们使用了逻辑 AND 和逻辑 OR 运算符,因为我们需要在单个 If 语句中检查多个条件。让我们将条件分解以更好地理解它。

第一个 C 编程 条件 (yr%400 == 0) 将检查余数是否正好等于 0。根据算法,任何能被 400 整除的数都是闰年。
OR
第二个 If 语句 条件包含 2 个语句,因此它们必须为 TRUE。

第一个条件 (yr%4 == 0) 将检查其余数是否正好等于 0。如果条件为 False,它将退出条件,因为检查其他条件没有意义。它不是。 AND

第二个条件将检查 (yr% 100) 的余数是否不等于 0。如果为 TRUE,则给定的数字不是世纪年。

根据算法,任何能被 4 整除但不能被 100 整除的数都是闰年。请参阅 C 语言中的逻辑运算符 以了解逻辑 AND 和逻辑 OR 的功能。

使用 Else If 语句判断闰年的 C 程序

此程序允许用户输入任何数字。然后,此 程序 将使用 Else If 语句 检查用户输入的是闰年还是平年。

#include <stdio.h>

int main()
{
  int yr;
 
  printf("\n Please Enter as you wish \n");
  scanf("%d", &yr);
 
  if ( yr%400 == 0)
     printf("\n%d is a Leap Year. \n", yr);
  else if ( yr%100 == 0)
     printf("\n%d is not. \n", yr);
  else if ( yr%4 == 0 )
     printf("\n%d is a Leap Year. \n", yr);
  else
     printf("\n%d is not. \n", yr);  
 
  return 0;
}
Program to Check Leap Year using Else If

在此判断闰年的 C 程序示例中,用户将输入任何数字进行检查。第一个 If 条件将检查 (yr% 400) 的余数是否正好等于 0。根据算法,任何能被 400 整除的数都是闰年。如果此条件失败,则将转到下一个条件。

第二个 If 条件检查 (yr% 100),余数是否正好等于 0。根据算法,任何不能被 400 整除但能被 100 整除的数都不是闰年(世纪年)。我们在第一个 If 语句中检查了 (yr% 400)。因为它失败了,所以它进入了第二个条件。如果第一个和第二个条件都失败,则将转到第三个条件。

第三个条件将检查 year mod 4 是否等于 0。如果此条件为 True,则给定的年份是闰年,因为我们在前一个条件中已检查过世纪年。如果所有语句都失败,它将转到最后的 Else 语句。如果以上所有语句都失败,则不是闰年。

使用嵌套 If 语句判断闰年的 C 程序

这允许用户输入任何数字。接下来,此程序将使用 嵌套 If 检查用户输入的是闰年还是平年。

在此判断闰年的 C 程序示例中,第一个 If 条件将检查 (year%4) 的余数是否正好等于 0。

  • 如果表达式的计算结果为 False,则给定的数字不是闰年。
  • 如果为 True,那么我们需要进一步检查世纪年。因此,编译器将转到嵌套 If 条件。

第二个 If 条件检查 (year%100) 的余数是否正好等于 0?

  • 如果此条件为 False,则不是世纪年。因此,它是闰年。
  • 如果为 True,那么我们需要检查该数字是否能被 400 整除。因此,编译器将转到另一个嵌套 If。

在此条件中,编译器将检查 (year%400) 的余数是否正好等于 0。

  • 如果表达式的结果为 False,则给定的数字肯定不是闰年。
  • 如果为 True,则给定的数字是 C 语言中的闰年。
#include <stdio.h>

int main()
{
  int year;

  printf("\n Please Enter any year you wish \n");
  scanf("%d",&year);
  
  if(year%4 == 0)
   {
    if( year%100 == 0) 
     {
      if ( year%400 == 0)
         printf("\n%d is a Leap.", year);
      else
         printf("\n%d is not.", year);
     }
    else
       printf("\n%d is a Leap.", year );
   }
  else
     printf("\n%d is not.", year);
 return 0;
}
C Program to Check Leap Year using Nested If Statement

评论已关闭。