作业帮 > 综合 > 作业

c语言算法不理解!判定 2000 ― 2500 年中的每一年是否闰年,将结果输出.润年的条件:1)能被 4 整除,但不能

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/30 03:50:02
c语言算法不理解!
判定 2000 ― 2500 年中的每一年是否闰年,将结果输出.
润年的条件:
1)能被 4 整除,但不能被 100 整除的年份;
2)能被 100 整除,又能被 400 整除的年份;
设 y 为被检测的年份,则算法可表示如下:
S1: 2000→y
S2:若 y 不能被 4 整除,则输出 y“不是闰年”,然后转到 S6
S3:若 y 能被 4 整除,不能被 100 整除,则输出 y“是闰年”,然后转到 S6
S4:若 y 能被 100 整除,又能被 400 整除,输出 y“是闰年”否则输出 y“不是闰年”,
然后转到 S6
S5:输出 y“不是闰年”.
S6:y+1→y
S7:当 y≤2500 时,返回 S2 继续执行,否则,结束.
从S1步骤我就不懂了,为什么要2000→Y.等等,哪位高手能为我一一说一下为什么
S1:题目规定从2000年开始跑至2500年,所以将y的初始值订为2000
S2:依据闰年规则而来,如果不能整除就印出" 不是闰年 "然後就跳到S6,再判断y是否大於
2500,如果没有重新执行一次回圈,如果大於跳出回圈
S3:S2不成立时执行此行,在此行判断是否被100整除,如果不能被100整除则印出" 是闰年 "然
後再跳到S6,再判断y是否大於2500,如果没有重新执行一次回圈,如果大於跳出回圈
S4:S3不成立时执行,在此判断是否被400整除,如果是就印出" 是闰年 "如果不是就印出不是"
闰年 "然後再跳到S6,再判断y是否大於2500,如果没有重新执行一次回圈,如果大於跳出回

S7:直到y的值大於2500时停止回圈执行
END~
以下为程式码:
#include
#include
int main(int argc,char *argv[])
{
int year;
for(year=2000;yea