练习7-9 计算天数 (15分)
本题要求编写程序计算某年某月某日是该年中的第几天。
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。
输入样例1:
2009/03/02输出样例1:
61输入样例2:
2000/03/02输出样例2:
62#include<stdio.h>
int main()
{
int days1[]={31,28,31,30,31,30,31,31,30,31,30,31};
int days2[]={31,29,31,30,31,30,31,31,30,31,30,31};
int year=0,mon=0,day=0;
int sum=0;
int i=0;
scanf("%d/%d/%d",&year,&mon,&day);
if(year%4==0&&year%100!=0||year%400==0){
for(i=1;i<mon;i++)
sum+=days2[i-1];
sum=sum+day;
}
else
{
for(i=1;i<mon;i++)
sum+=days1[i-1];
sum=sum+day;
}
printf("%d\n",sum);
return 0;
}///这就是最笨的办法
#include<stdio.h>
#define ONE 28
#define TWO 29
#define TH 30
#define FOUR 31
int main()
{
int year,mon,day;
int sum=0;
scanf("%d/%d/%d",&year,&mon,&day);
if(year%4==0&&year%100!=0||year%400==0)
{
if(mon==1)
printf("%d",day);
else if(mon==2)
printf("%d",day+FOUR);
else if(mon==3)
printf("%d",day+FOUR+TWO);
else if(mon==4)
printf("%d",day+FOUR+TWO+FOUR);
else if(mon==5)
printf("%d",day+FOUR+TWO+FOUR+TH);
else if(mon==6)
printf("%d",day+FOUR+TWO+FOUR+TH+FOUR+TH);
else if(mon==7)
printf("%d",day+FOUR+TWO+FOUR+TH+FOUR+TH+FOUR);
else if(mon==8)
printf("%d",day+FOUR+TWO+FOUR+TH+FOUR+TH+FOUR+FOUR);
else if(mon==9)
printf("%d",day+FOUR+TWO+FOUR+TH+FOUR+TH+FOUR+FOUR+TH);
else if(mon==10)
printf("%d",day+FOUR+TWO+FOUR+TH+FOUR+TH+FOUR+FOUR+TH+FOUR);
else if(mon==11)
printf("%d",day+FOUR+TWO+FOUR+TH+FOUR+TH+FOUR+FOUR+TH+FOUR+TH);
else
printf("%d",day+FOUR+TWO+FOUR+TH+FOUR+TH+FOUR+FOUR+TH+FOUR+TH+FOUR);
}
else{
if(mon==1)
printf("%d",day);
else if(mon==2)
printf("%d",day+FOUR);
else if(mon==3)
printf("%d",day+FOUR+ONE);
else if(mon==4)
printf("%d",day+FOUR+ONE+FOUR);
else if(mon==5)
printf("%d",day+FOUR+ONE+FOUR+TH);
else if(mon==6)
printf("%d",day+FOUR+ONE+FOUR+TH+FOUR+TH);
else if(mon==7)
printf("%d",day+FOUR+ONE+FOUR+TH+FOUR+TH+FOUR);
else if(mon==8)
printf("%d",day+FOUR+ONE+FOUR+TH+FOUR+TH+FOUR+FOUR);
else if(mon==9)
printf("%d",day+FOUR+ONE+FOUR+TH+FOUR+TH+FOUR+FOUR);
else if(mon==10)
printf("%d",day+FOUR+ONE+FOUR+TH+FOUR+TH+FOUR+FOUR+TH);
else if(mon==11)
printf("%d",day+FOUR+ONE+FOUR+TH+FOUR+TH+FOUR+FOUR+TH+FOUR);
else
printf("%d",day+FOUR+ONE+FOUR+TH+FOUR+TH+FOUR+FOUR+TH+FOUR+TH);
}
return 0;
}
版权声明:本文为qq_52265726原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。