寻找第N个闰年: 求从当前年份开始的第N个闺年的年份。C语言

寻找第N个闰年: 给出当前年份和N,求从当前年份开始的第N个闺年的年份。c语言

#include <stdio.h>

int main()
{
    int year, n;
    scanf("%d %d", &year, &n);

    while (n > 0)
    {
        year++;
        if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
        {
            n--;
        }
    }

    printf("%d", year);

    return 0;
}
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7589988
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:c语言:从键盘输入一个年份,判断该年是否是闰年,并输出结果。
  • 除此之外, 这篇博客: c语言经典例题中的 7、用户输入年份,判断该年份是否为闰年。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #include<stdio.h>
    void main()
    {
    	int year;
    	printf("输入年份:");
    	scanf_s("%d", &year);
    	if (year % 4 == 0)
    	{
    		if (year % 100 == 0)
    		{
    			if (year % 400 == 0)
    				printf("%d 是闰年", year);
    			else
    				printf("%d 不是闰年”,year);
    		}
    		else
    			printf("%d 是闰年",year);
    	}
    	else
    		printf("%d 不是闰年", year);
    	return 0;
    }
    

    在这里插入图片描述

  • 以下回答由chatgpt基于相关博客总结生成:
    #include <stdio.h>
    
    int is_leap_year(int year) {
        /**
         * 判断是否为闰年
         * 非整百年:能被4整除的为闰年。(如2004年就是闰年,2100年不是闰年)
         * 整百年:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
         **/
        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
            return 1;
        }
        else {
            return 0;
        }
    }
    
    int find_nth_leap_year(int cur_year, int n) {
        /**
         * 查找从当前年份开始的第N个闰年的年份
         **/
        int leap_year_count = 0; // 记录已找到的闰年个数
        int year = cur_year;
        while (leap_year_count < n) {
            if (is_leap_year(year)) {
                leap_year_count++;
            }
            year++;
        }
        return year - 1; // 减1是因为最后一次找到闰年后year会又自增1
    }
    
    int main() {
        int cur_year, n;
        printf("输入当前年份:");
        scanf("%d", &cur_year);
        printf("输入要查找的第N个闰年:");
        scanf("%d", &n);
        int leap_year = find_nth_leap_year(cur_year, n);
        printf("从%d年开始的第%d个闰年是:%d年\n", cur_year, n, leap_year);
        return 0;
    }