又是一个涉及到闰年判断的题目
不过现在看 应该已经难不倒我了
#include<stdio.h>
int main() {
int T;
scanf("%d",&T);
while(T--) {
int month[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
int y,m,d;
scanf("%d %d %d",&y,&m,&d);
if(y%400==0||(y%100&&y%4==0))
month[1]++;
int sum=0;
for(int i=0; i<m-1; i++) {
sum+=month[i];
}
printf("%d
",sum+d);
}
return 0;
}
标程的亮点是通过
switch运行到底的特性
(不遇到break;
便会继续运行下一个case)
巧妙地区分了31天与30天的年份
#include<stdio.h>
int main() {
int a,b=0,c,y,m,d,fib;
scanf("%d",&a);
while(a--) {
scanf("%d %d %d",&y,&m,&d);
if(y%400==0||y%100!=0&&y%4==0)
fib=29;
else fib=28;
for(c=1; c<=m; c++)
switch(c-1) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
b+=31;
break;
case 2:
b+=fib;
break;
case 4:
case 6:
case 9:
case 11:
b+=30;
break;
}
b+=d;
printf("%d
",b);
b=0;
}
return 0;
}
题目地址:【NYOJ】[75]日期计算