注册 登录
编程论坛 数据结构与算法

生日与今年之间有多少个闰年,求解

无情的虫 发布于 2020-10-31 16:57, 6024 次点击
这可能是一个很简单的问题,题目要求就是输入自己的生日和今年的年份,写程序判断这中间有多少个闰年,我想了很久,写的都出错,求解!
12 回复
#2
林月儿2020-10-31 17:00
写的发出来看看呢
#3
无情的虫2020-10-31 21:44
回复 2楼 林月儿
只有本站会员才能查看附件,请 登录

我不清楚用循坏还是条件,里面可能有很多错误,请大佬赐教!
#4
林月儿2020-11-01 14:10
for(初始化块;结束条件;循环语句)
第9行for末尾多了分号,里面就一段判断结束的语句
另外要声明两个变量,一个生日year,一个今年year2
while(year%4!=0)year++;
for(;year<year2;year+=4){
    if(year%400==0){
        闰年
    }else if(year%100!=0){
        闰年
    }
}
#5
无情的虫2020-11-01 21:25
回复 5楼 林月儿
我想问一下那个year的范围在那两个我输入的值里,列如我输入2000,2020,那个year的循环条件就在2000到2020,我该怎么描述他从终端得到的这两个值?
#6
林月儿2020-11-01 22:49
你后面会覆盖前面的输入值,这个考虑过没
#7
无情的虫2020-11-02 13:53
回复 7楼 林月儿
year++的值?
#8
无情的虫2020-11-02 13:54
回复 7楼 林月儿
我又重新改了一下
只有本站会员才能查看附件,请 登录
#9
林月儿2020-11-02 15:17
程序代码:
#include <stdio.h>

int main() {
    int year;
    scanf("%d", &year);
    int year2;
    scanf("%d", &year2);
    // 走到闰年条件:能被4整除
    while(year%4!=0)year++;
    int count=0;
    // 闰年条件之一是能被4整除,所以循环步长尽量大一点
    for(;year<year2;year+=4){
        //被400整除
        if(year%400==0){
            count++;
            printf("%d\n",year);
        }else if(year%100!=0){// 能被4整除且不能被100整除
            count++;
            printf("%d\n",year);
        }
    }
    printf("闰年数:%d",count);
    return 0;
}


下次不要发代码截图,不能复制内容
#10
林月儿2020-11-02 15:22
或者
程序代码:
#include <stdio.h>

int main() {
    int year1;
    scanf("%d", &year1);
    int year2;
    scanf("%d", &year2);
    int count=0;
    for(int year=year1;year<year2;year++){
        //被400整除
        if(year%400==0){
            count++;
            printf("%d\n",year);
        }else if(year%4==0&&year%100!=0){// 能被4整除且不能被100整除
            count++;
            printf("%d\n",year);
        }
    }
    printf("闰年数:%d",count);
    return 0;
}

思路对就可以
#11
无情的虫2020-11-02 20:43
以下是引用林月儿在2020-11-2 15:17:58的发言:

#include <stdio.h>

int main() {
    int year;
    scanf("%d", &year);
    int year2;
    scanf("%d", &year2);
    // 走到闰年条件:能被4整除
    while(year%4!=0)year++;
    int count=0;
    // 闰年条件之一是能被4整除,所以循环步长尽量大一点
    for(;year<year2;year+=4){
        //被400整除
        if(year%400==0){
            count++;
            printf("%d\n",year);
        }else if(year%100!=0){// 能被4整除且不能被100整除
            count++;
            printf("%d\n",year);
        }
    }
    printf("闰年数:%d",count);
    return 0;
}

下次不要发代码截图,不能复制内容

好的
#12
无情的虫2020-11-02 20:52
回复 10楼 林月儿
那个整型的定义可以直接写到for语句中,是吗?写的手法和平时的不一样,可能我学的还不够多,哈哈
#13
哲寒2021-03-19 17:00
1