#include<stdio.h>
int main(){
int a[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};
//定义一个二维数组,数据具体解释看下文
int x,y,z,sum=0; //定义x为年,y为月,z为日,sum为天的总数
scanf("%d%d%d",&x,&y,&z); //输入年月日
if(((x%4==0)&&(x%100!=0))||(x%400==0)) //判断是否为闰年
{
int i=1,j;
for(j=0;j<y-1;j++){ //for为循环
sum+=a[i][j]; //与sum=sum+a[i][j]
}
}else //除了闰年之外的年份
{
int i=0,j;
for(j=0;j<y-1;j++){
sum+=a[i][j];
}
}
sum+=z; //加上z的天数
printf("%d\n",sum); //输入天的总数
return 0;
}
数组
定义一个数组,就像是买了一个容器 ,数组存放的是数字,容器里存放的是某些东西。如int a[100],就是能在它里面存放100个数字。它初始的样子是这样
a[0] | a[1] | a[2] | a[3] | a[4] | ... | a[99] |
0 | 0 | 0 | 0 | 0 | 0 |
可以看到它是从0开始到99个单位。如果你在其中按顺序给它赋了值,如a[0]=1; a[1]=2;a[2]=3...a[99]=100,则就成
a[0] | a[1] | a[2] | a[3] | a[4] | ... | a[99] |
1 | 2 | 3 | 4 | 5 | 100 |
而我代码中所用的是二维数组,他是这样定义的a[2][12]且我后面直接赋值了数字,所以它里 面是这样子的
a[0] | a[1] | a[2] | a[3] | a[4] | a[5] | a[6] | a[7] | a[8] | a[9] | a[10] | a[11] | |
a[0] | 31 | 28 | 31 | 30 | 31 | 30 | 31 | 31 | 30 | 31 | 30 | 31 |
a[1] | 31 | 29 | 31 | 30 | 31 | 30 | 31 | 31 | 30 | 31 | 30 | 31 |
所以当if成立时,令i=1,则sum相加时便加的是29;
for循环
for(初始动作;循环继续条件;循环每一轮要做的动作)
所以当令j小于月数y-1时,它便可在重新走一遍这个流程,使sum加上这个月的天数
等到sum走出循环,还要加y这个月所输入的天数z,然后就可以输出了。