首页 > 其他分享 >用c语言来判断闰年

用c语言来判断闰年

时间:2024-11-08 18:47:03浏览次数:6  
标签:年份 语言 闰年 Year flag 判断 year 函数

#include <stdio.h>

int Year(int n) {

    if ((n % 4 == 0 && n % 100!= 0) || (n % 400 == 0))

{

        return 1;

    } else {

        return 0;

    }

}

 

int main() {

    int year, flag;

    scanf("%d", &year);

    flag = Year(year);

    if (flag == 1) {

        printf("%d is a leap year.\n", year);  }

else {

        printf("%d is not a leap year.\n", year);

    }

    return 0;

}

 

以下是对这段代码的详细分析:

一、功能概述

这段 C 语言代码的主要功能是判断输入的年份是否为闰年,并输出相应的结果。

二、函数部分

1.  Year 函数:

- 接收一个整数参数 n ,代表要判断的年份。

- 通过条件判断来确定年份是否为闰年。判断逻辑为:如果年份能被 4 整除且不能被 100 整除,或者能被 400 整除,那么该年份是闰年,返回 1;否则不是闰年,返回 0。

三、主函数部分

1. 定义变量:

-  int year 用于存储用户输入的年份。

-  int flag 用于存储 Year 函数的返回值,即判断结果。

2. 获取用户输入:

- 通过 scanf("%d", &year); 从用户获取一个整数作为要判断的年份。

3. 调用函数并判断:

- 调用 Year(year) 函数,并将返回值赋给 flag 。

- 根据 flag 的值判断输入的年份是否为闰年,如果 flag == 1 ,说明是闰年,输出“ year  is a leap year.”;否则,说明不是闰年,输出“ year  is not a leap year.”。

4. 返回值:

-  return 0; 表示程序正常结束。

 

★在C语言中, flag 通常是一个用于标记或指示某种状态的变量。

例如在前面判断闰年的程序中, flag 变量用于存储函数 Year() 的返回值。这个返回值代表了年份是否为闰年的状态(1表示是闰年,0表示不是闰年)。通过检查 flag 的值,程序能够决定要输出的消息。

 flag 只是一个变量名,你可以使用其他名字,比如 result 、 isLeap 等来达到相同的目的。它本质上是一个整型变量,在不同的程序场景下可以用来表示各种各样的状态,如文件是否成功打开(1表示成功,0表示失败)、数据是否有效等。

★在这段 C 语言代码中, Year(year) 函数具有以下含义:

1. 函数名和参数:

- “Year”是自定义的函数名。这个名字通常暗示该函数的功能与年份相关,具体来说是判断给定的年份是否为闰年。

- “year”是传递给函数的参数。在主函数中,通过用户输入得到一个年份值,并将这个值作为参数传递给 Year 函数。这个参数代表要进行判断的具体年份。

2. 函数功能:

- 该函数的目的是判断传入的年份是否符合闰年的条件。闰年的判断规则是:能被 4 整除且不能被 100 整除的年份为闰年,或者能被 400 整除的年份也是闰年。

- 函数内部通过条件判断语句 if ((n % 4 == 0 && n % 100!= 0) || (n % 400 == 0)) 来实现这个判断逻辑。如果传入的年份符合闰年条件,函数返回 1;如果不符合,返回 0。

3. 在程序中的作用:

- 在主函数中,通过调用 Year(year) ,可以得到关于输入年份是否为闰年的判断结果。这个结果被存储在变量 flag 中,然后根据 flag 的值输出相应的信息,告知用户输入的年份是否为闰年。

标签:年份,语言,闰年,Year,flag,判断,year,函数
From: https://blog.csdn.net/2401_87723168/article/details/143633092

相关文章

  • 使用 Mercury 语言编写简单 OCR 程序
    以下代码展示了如何使用Mercury语言实现基本的光学字符识别(OCR)功能。由于Mercury是一种逻辑编程语言,这里展示了它如何通过特定图像模式和字符的特征进行匹配。代码实现mercury:-modulesimple_ocr.:-interface.:-import_moduleio.更多内容访问ttocr.com或联系143642......
  • C语言双向链表
    一、优势 与单链表对比,双向链表的增、删、改无需遍历多次以查找目标节点前一节点与后一节点,效率提高,代码对比*单链表:1.插入:voidinsert(node*head,charName,intphonenumber,inttarget){ node*p=(node*)malloc(sizeof(node));//为新节点分配内存; p->next=sea......
  • C语言 循环高级
    时间:2024.11.6一、学习内容1、无限循环无限循环:循环永远停不下来注意点:无限循环因为永远停不下来,所以下面不能再写其他的代码了2、break跳转控制语句:在循环的过程中,跳到其他语句上执行 #include<stdio.h>intmain(){ intcount=0; inti;//利用for循环去......
  • 多语言外贸电商系统 自带翻译中英双语电商平台设计及开发
    随着跨境电商的发展,越来越多的外贸公司需要设计多语言支持的电商平台,以便吸引不同国家的消费者。特别是中英双语系统,它能够兼容全球范围内的不同语言需求,提高市场竞争力。商淘云分享以PHP+MySQL为技术栈,介绍如何开发一个支持中英双语的外贸电商系统,包括核心功能模块的设计......
  • C语言格式化打印
    C语言格式化打印十进制:%d      int、char%i       有符号的整数%hd    short%ld     long int%lld    long long int%zd    size_t%u      unsigned int%lu     unsigned long int%llu    unsigned long long int八进制:%o......
  • 嵌入式课程day10-C语言数组
    目录七、数组7.1数组是什么?7.2数组的使用7.3定义数组7.4数组初始化7.5冒泡排序7.6二分法查找七、数组7.1数组是什么?存储多个同种类型的数据 ,方便数据处理7.2数组的使用先定义再使用7.3定义数组存储多少数据 数据的数据类型 数组名元素:数组中数据可以统......
  • Leetcode 3235. 判断矩形的两个角落是否可达
    1classSolution{2public:3boolcanReachCorner(intxCorner,intyCorner,vector<vector<int>>&circles){4vector<bool>visited(circles.size(),false);56function<bool(int)>dfs=[&](inti)......
  • VS Code/Code-Runner编译C语言遇到undefined reference to XXX的一种解决办法
    背景用VSCode编译一个C语言编写的项目文件,这个项目除main文件外还有些被引用的C文件,如果不做相关配置的话,运行会报错:即编译时找不到被引用的这些文件,从而报错。解决办法我是使用code-runner这个插件跑的,所以这里只写关于用这种方式运行代码的解决办法。首先查看.vscode/配......
  • 二叉树 (王道数据结构 C语言版)
    2004.11.04计算一颗给定二叉树的所有双分支节点个数编写把一个树的所有左右子树进行交换的函数求先序遍历中第k个结点的值(1<=k<=二叉树中的结点个数)#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'usingnamespacestd;typedefstructBitnode{......
  • 用C语言实现汉诺塔问题(第四天:函数递归)【每天进步一点点-小白学习笔记】
    0 前言        最近比较忙,到现在才有时间更新博客,这两天刚好学到了函数递归,这是个很有趣的知识,为什么说有趣呢?因为递归这个东西吧,很多人都对它又爱又恨。爱在递归不仅可以轻松简化代码,增加可读性,还能将一些很难解决的算法问题轻松解决,但它又大大加大了程序复杂度,既......