闰年平年的判断

问题描述:
给定一个年份,判断这一年是不是闰年。
当以下情况之一满足时,这一年是闰年:

  1. 年份是4的倍数而不是100的倍数;
  2. 年份是400的倍数。
    其他的年份都不是闰年。
    输入格式:
    输入包含一个整数y,表示当前的年份。
    输出格式:
    输出一行,如果给定的年份是闰年,则输出yes,否则输出no。

说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。
样例输入
2013
样例输出
yes
数据规模与约定
1990 <= y <= 2050。
这是蓝桥杯竞赛的一道基础题,考察了大家"取余"运算,"或"运算,函数的定义与调用,以及if-else语句的用法。我们先看代码,其中给出了简单的注释:

#include<stdio.h>
#include<stdbool.h>
bool is_leap_year(int year){
    return (year%4==0&&year%100!=0)||(year%400==0);
    //如果满足判断闰年的两个条件之一(即用||连接),即返回true,否则返回false。
}
int main(int argc, char const *argv[])
{
    int year;
    scanf("%d",&year);
    if(is_leap_year(year))//is_leap_year(year)的值为真时,输出yes,否则输出no。
        printf("yes");
    else
        printf("no");
    return 0;
}

这个小程序由三部分组成,第一部分是头文件。
<stdio.h>的含义是"standard input & output"(标准的输入和输出)也就是我们的源代码要用到C语言的标准的输入和输出时,就要用到这个头文件。<stdbool.h>也是C语言标准库中一个常用的头文件,当用到bool(布尔)变量时,我们就要把它"请"过来。#include(文件包含)是C语言的预处理指令之一,它会导致一个指定文件的内容被包含到程序中。当我们需要头文件的时候,只要把头文件放到成对的尖括号"<>“里面,再在前面加上预处理指令#include即可。
第二部分是我们自定义的函数,这个函数的返回值是bool类型,我们可以简单地把它理解为判断真假,结果为真返回1,结果为假返回0。函数首部定义了函数的名字"is_leap_year"以及形式参数year。实际参数会通过值传递的方式将参数拷贝一份给形式参数,再将其在函数内部进行操作。该函数体内部只有一个return (year%4 == 0&&year%100!=0)||(year%400 == 0);语句,如果(year%4==0&&year%100!=0)||(year%400 == 0)值为真(年份能被四整除的同时不被100整除,或者该年份能被400整除),即满足闰年的条件,则该式值为真,返回1,反之返回0。
第三部分就是main函数部分。main函数内部需要用一个if语句来判断,如果is_leap_year(year)的值为真,就打印输出"yes”,否则打印输出"no",不难理解。
这道题就这么做完了,考验了大家C语言的基础知识,对于这些基本语法的学习,一定要通过多上机训练的方式练习,相信熟能生巧。还有什么问题,欢迎留言交流!

发布了7 篇原创文章 · 获赞 5 · 访问量 160

猜你喜欢

转载自blog.csdn.net/weixin_45264145/article/details/104720986