题目描述
算法设计+题目分析
分析题目:
1、先判断给的年份是闰年还是非闰年;
2、根据第一步判断出的结果计算是第几月第几天。
注意点+记录点
无
代码(100分)
环境
Visual C++6.0
#include <stdio.h>
bool Judge_r(int y){//判断是否是闰年
if (y%4 == 0 && y%100 != 0) return true;
if (y%400 == 0) return true;
return false;
}
void P(int a, int b){//规范打印格式
printf("%d\n", a);
printf("%d", b);
}
void Print(int d){//非闰年的打印
if (d<=31) P(1, d);
if (d>31 && d<=59) P(2, d-31);
if (d>59 && d<=90) P(3, d-59);
if (d>90 && d<=120) P(4, d-90);
if (d>120 && d<=151) P(5, d-120);
if (d>151 && d<=181) P(6, d-151);
if (d>181 && d<=212) P(7, d-181);
if (d>212 && d<=243) P(8, d-212);
if (d>243 && d<=273) P(9, d-243);
if (d>273 && d<=304) P(10, d-273);
if (d>304 && d<=334) P(11, d-304);
if (d>334 && d<=365) P(12, d-334);
return;
}
void Print_r(int d){//闰年的打印
if (d<=31) P(1, d);
if (d>31 && d<=60) P(2, d-31);
if (d>60 && d<=91) P(3, d-60);
if (d>91 && d<=121) P(4, d-91);
if (d>121 && d<=152) P(5, d-121);
if (d>152 && d<=182) P(6, d-152);
if (d>182 && d<=213) P(7, d-182);
if (d>213 && d<=244) P(8, d-213);
if (d>244 && d<=274) P(9, d-244);
if (d>274 && d<=305) P(10, d-274);
if (d>305 && d<=335) P(11, d-305);
if (d>335 && d<=366) P(12, d-335);
return;
}
int main(){
int y,d;
scanf("%d", &y);
scanf("%d", &d);
bool flag=Judge_r(y);
if (flag){//是闰年
Print_r(d);
}
else Print(d);//非闰年
return 0;
}
感谢链接
无