G - 第几天?
总结:
①.多组输入数据,每组占一行,因此代码中即可写成,直至出现EOF,结束运行。
②.题中输入数据是“1985/1/20”要让输入中跳过扫描“/”,即在%d中加上“/”。
③.根据题中要求可知,隐含条件是让判断闰平年(当年份整除4并且不整除100,或者年份可以整除400时是闰年)。
④.for 循环,C语言中的for循环与python语言差别比较大,for(a;b;i++){a代表的是i的起始数值,b是i的判断语句,i++代表的是i在(变化)递增。}
PS:
因为for循环里只有一个语句,所以没有用{}括起来,当有两个及以上语句时,记得加{}
#include <stdio.h> int main() { int a,b,c,m,i,k; int month[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31}; while(scanf("%d/%d/%d",&a,&b,&c) != EOF){ if ((a%4==0 && a%100!= 0) || a%400==0) month[2]=29; else month[2]=28; k=0; for (i = 1;i < b;i++) k+=month[i]; k+=c; printf("%d\n",k); } return 0; }