数组的一道题

来源:百度知道 编辑:UC知道 时间:2024/05/30 10:49:13
题目:输入某年某月某日,判断这一天是这一年的第几天?

分析:
每年的每月天数是固定的!只是有平年和闰年的差别.差别在2月,所以我采用2维数组:
#include <stdio.h>
main()
{int year,month,day,i,j;
int a[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
printf("put year,month,day:\n");
scanf("%d%d%d",&year,&month,&day);
if(year%4==0&&year%100!=0||year%400==0)
j=1;
else j=0;
for(i=1;i<month;i++)
day+=a[j][i];
printf("days=%d\n",day);
}
}

我定义数组长度为13是为了方便month取到12.

与奥运倒记时相减

#include <stdio.h>

void main()
{
int Mouth[]={31,28,31,30,31,30,31,31,30,31,30,31};
int year,mouth,day;
printf("please input Date,format:year-mouth-day\n");
scanf("%d-%d-%d",&year,&mouth,&day);
int days=0;
for(int i=0;i<mouth-1;i++)
{
day+=Mouth[i];
if(i==1&&(year%4==0&&year%100!=0||year%400==0))
days+=1;
}