闰年判断:C语言实战解析

判断闰年

输入某个年份,如果能被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;
}

🧐 逐行详细解析

  1. #include <stdio.h>

    • 这是一条预处理指令。stdio.h 是 "standard input/output" 的缩写,即标准输入输出头文件。
    • 它的作用是告诉编译器在编译前,把 stdio.h 文件的内容包含进来。这个文件里声明了 printfscanf 等函数,没有它,程序就无法使用这些输入输出功能。
  2. int main()

    • 这是主函数的定义。每个C语言程序都必须有一个 main 函数,程序从这里开始执行。
    • int 表示这个函数执行完毕后会返回一个整型(integer)值
  3. {

    • 左花括号标志着**main 函数体** 的开始。函数内的所有代码都包含在**花括号 {}**之间。
  4. int year;

    • 这是一条变量声明语句。它在内存中开辟了一块空间,用于存储一个整数,并给这块空间起名为 year
  5. printf("请输入年份:\n");

    • printf 是一个库函数,用于向标准输出(通常是屏幕)打印信息。
    • "请输入年份:\n" 是要打印的字符串。
    • \n 是一个转义字符,代表"换行"(newline)。它的作用是在打印完提示语后,让光标移动到下一行,这样用户的输入就不会和提示语挤在同一行,使界面更美观。
  6. scanf("%d", &year);

    • scanf 是一个库函数,用于从标准输入(通常是键盘)读取数据。
    • "%d" 是一个格式控制符 ,告诉 **scanf**函数:"请期待一个十进制整数(decimal integer)"。
    • &year变量 year 的地址。scanf 需要知道把读取到的数据存放到内存的哪个位置,& 符号就是用来获取变量在内存中的地址 。所以这行代码的意思是:从键盘读取一个整数,并存入 year 变量所在的内存地址中
  7. if ((year%4==0 && year%100!=0) || (year%400==0))

    • 这是整个程序的核心逻辑,用于判断闰年。if 语句会判断括号内表达式的真假。如果为真(true) ,则执行 if 后面的代码块如果为假(false)则执行 else 后面的代码块。
    • 闰年规则 :一个年份是闰年,需要满足以下两个条件之一:
      1. 能被4整除,但不能被100整除(普通闰年)。
      2. 能被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)运算符 。只要左右两个表达式有一个为真,整个表达式就为真。
    • 综上,这行代码精确地将闰年的文字规则翻译成了计算机可以执行的逻辑。
  8. { printf("该年份是闰年\n"); }

    • 如果 if 语句中的条件判断为真,就会执行这个代码块。
    • printf 函数向屏幕输出"该年份是闰年"。
  9. else

    • 如果**if 语句中**的条件判断为假,程序就会跳转到 else 分支
  10. { printf("该年份不是闰年\n"); }

    • 这是 else 分支的代码块。当输入的年份不满足闰年条件时,会执行这里,输出"该年份不是闰年"。
  11. return 0;

    • 这条语句结束了 main 函数的执行
    • 返回值 0 是一个约定俗成的惯例,用来告诉操作系统:"这个程序已经成功执行完毕,没有发生任何错误"。
  12. }

    • 右花括号标志着 main 函数体的结束。
相关推荐
kkeeper~4 小时前
0基础C语言积跬步之数据在内存中的存储
c语言·数据结构·算法
2401_868534784 小时前
论企业网络设计
数据结构
wabs6665 小时前
关于贪心算法的一些自我总结【力扣45.跳跃游戏II】【灵感来源:代码随想录】
算法·贪心算法·复盘
2401_876964135 小时前
【湖北专升本】2026湖北专升本真题PDF+备考资料汇总
数据结构·人工智能·经验分享·深度学习·算法·计算机视觉
qq3862461966 小时前
更新补发第6天:7天学会C语言,每天5分钟,不需要基础
c语言·for循环·循环语句·while循环·do-while循环
嗝o゚6 小时前
CANN GE 算子融合——融合算法与调度策略
算法·昇腾·cann·ge
小江的记录本6 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试
Ulyanov8 小时前
用声明式语法重新定义Python桌面UI:QML+PySide6现代开发入门(一)
开发语言·python·算法·ui·系统仿真·雷达电子对抗仿真
数据科学小丫8 小时前
特征工程处理
人工智能·算法·机器学习
z落落8 小时前
C#参数区别
java·算法·c#