早教吧 育儿知识 作业答案 考试题库 百科 知识分享

关于C语言算法的一个问题《C程序设计》(第四版)中有一例题例2.3判定2000—2500年中的每一年是否闰年,将结果输出。润年的条件:1)能被4整除,但不能被100整除的年份;2)能

题目详情
关于C语言算法的一个问题
《C程序设计》(第四版)中有一例题
【例 2.3】判定 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 继续执行,否则,结束。
此算法可不可以这样写
设 y 为被检测的年份,则算法可表示如下:
S1: 2000→y
S2:若 y 能被 4 整除,不能被 100 整除,则输出 y“是闰年”,然后转到 S5
S3:若 y 能被 100 整除,又能被 400 整除,输出 y“是闰年” 否则输出 y“不是闰年”,
然后转到 S5
S4:输出 y“不是闰年”。
S5:y+1→y
S6:当 y≤2500 时, 返回 S2 继续执行,否则,结束。
就是将第二步并到第五步中
▼优质解答
答案和解析
可以啊,如:
#include
void main()
{
int i;
for(i=2000;i<=2500;i++)
{
if((i%4==0)&&(i%100!=0)){printf("i是闰年",%d);}
else if(i%100==0&&i%400==0){printf("i是闰年",%d);}
else printf("i 不是闰年!",%d);

}
}