判断闰年
输入某个年份,如果能被4整除,但不能被100整除;
或者能被400整除。则输出"该年份是闰年",否则输出"该年份不是闰年" 。

#include <stdio.h>
int main()
{
int year;
printf("请输入年份:\n");
scanf("%d", &year);
if ((year%4==0 && year%100!=0) || (year%400==0))
{
printf("该年份是闰年\n");
}
else
{
printf("该年份不是闰年\n");
}
return 0;
}
🧐 逐行详细解析
-
#include <stdio.h>- 这是一条预处理指令。
stdio.h是 "standard input/output" 的缩写,即标准输入输出头文件。 - 它的作用是告诉编译器在编译前,把
stdio.h文件的内容包含进来。这个文件里声明了printf和scanf等函数,没有它,程序就无法使用这些输入输出功能。
- 这是一条预处理指令。
-
int main()- 这是主函数的定义。每个C语言程序都必须有一个
main函数,程序从这里开始执行。 int表示这个函数执行完毕后会返回一个整型(integer)值。
- 这是主函数的定义。每个C语言程序都必须有一个
-
{- 左花括号标志着**
main函数体** 的开始。函数内的所有代码都包含在**花括号{}**之间。
- 左花括号标志着**
-
int year;- 这是一条变量声明语句。它在内存中开辟了一块空间,用于存储一个整数,并给这块空间起名为
year。
- 这是一条变量声明语句。它在内存中开辟了一块空间,用于存储一个整数,并给这块空间起名为
-
printf("请输入年份:\n");printf是一个库函数,用于向标准输出(通常是屏幕)打印信息。"请输入年份:\n"是要打印的字符串。\n是一个转义字符,代表"换行"(newline)。它的作用是在打印完提示语后,让光标移动到下一行,这样用户的输入就不会和提示语挤在同一行,使界面更美观。
-
scanf("%d", &year);scanf是一个库函数,用于从标准输入(通常是键盘)读取数据。"%d"是一个格式控制符 ,告诉 **scanf**函数:"请期待一个十进制整数(decimal integer)"。&year是变量year的地址。scanf需要知道把读取到的数据存放到内存的哪个位置,&符号就是用来获取变量在内存中的地址 。所以这行代码的意思是:从键盘读取一个整数,并存入year变量所在的内存地址中。
-
if ((year%4==0 && year%100!=0) || (year%400==0))- 这是整个程序的核心逻辑,用于判断闰年。
if语句会判断括号内表达式的真假。如果为真(true) ,则执行if后面的代码块;如果为假(false) ,则执行else后面的代码块。 - 闰年规则 :一个年份是闰年,需要满足以下两个条件之一:
- 能被4整除,但不能被100整除(普通闰年)。
- 能被400整除(世纪闰年)。
- 代码逻辑拆解 :
year % 4 == 0:判断year除以4的余数是否为0,即能否被4整除。year % 100 != 0:判断 **year**除以100的余数是否不为0,即能否不被100整除。&&:逻辑与(AND)运算符。要求左右两个条件同时为真 ,整个表达式才为真。所以(year%4==0 && year%100!=0)就对应了第一条规则。year % 400 == 0:判断year除以400的余数是否为0,即能否被400整除。这对应了第二条规则。||:逻辑或(OR)运算符 。只要左右两个表达式有一个为真,整个表达式就为真。
- 综上,这行代码精确地将闰年的文字规则翻译成了计算机可以执行的逻辑。
- 这是整个程序的核心逻辑,用于判断闰年。
-
{ printf("该年份是闰年\n"); }- 如果
if语句中的条件判断为真,就会执行这个代码块。 printf函数向屏幕输出"该年份是闰年"。
- 如果
-
else- 如果**
if语句中**的条件判断为假,程序就会跳转到else分支。
- 如果**
-
{ printf("该年份不是闰年\n"); }- 这是
else分支的代码块。当输入的年份不满足闰年条件时,会执行这里,输出"该年份不是闰年"。
- 这是
-
return 0;- 这条语句结束了
main函数的执行。 - 返回值
0是一个约定俗成的惯例,用来告诉操作系统:"这个程序已经成功执行完毕,没有发生任何错误"。
- 这条语句结束了
-
}- 右花括号标志着
main函数体的结束。
- 右花括号标志着