1.写一个函数,给定年、月、日,计算该日期是该年的第几天。在主函数中输入一个日期(含年、月、日),通过函数调用,得到该日期所对
应这一年的第几天,并输出该数值。
输入日期所对应这一年的第几天,一个整数,单独占一行,如2014 3 8输出67。
难度系数:1
//第一种 带外加函数
#include <stdio.h>
int main()
{
int fun(int a,int b,int c);
int year,month,day,number;
scanf("%d %d %d",&year,&month,&day);
number=fun(year,month,day);
printf("%d\n",number);
return 0;
}
int fun(int a,int b,int c)
{ int number;
number=c;
int i;
for(i=1;i<b;i++)
switch(i)
{ case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
number+=31;break;
case 4:
case 6:
case 9:
case 11:
number+=30;break;
case 2:
if((a%100!=0&&a%4==0)||a%400==0)
number+=29;//闰年2月份29天
else number+=28;
break;
}
return number;
}
//第二种 不用外加函数
#include <stdio.h>
int main()
{
int year,month,day,numday;
scanf("%d %d %d",&year,&month,&day);
numday=day;
for(int i=1;i<month;i++)//注意!!i!=year,因为算的是它之前的月份+当前月份的天数
switch (i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
numday+=31;
break;
case 4:
case 6:
case 9:
case 11:
numday+=30;
break;
case 2:
if((year%4==0 && year%100 !=0) || year%400==0)
numday+=29;
else
numday+=28;
}
printf("%d\n",numday);
return 0;
}
2.今天小明想要去找小红约会,于是他中午吃过饭就跑去和妈妈说要去小红家,小明妈妈说作业写完了再去,但是小明不想写高数和现代作业(应为太难了…….)。于是,小明一直缠着妈妈,最后小明妈妈要给小明出一个问题,如果小明答对了,就让小明出去玩。已知,今天是2017年十一月25号 Saturday, 给你一个日期,说说那天是星期几?
小明一听简直快要崩溃,为了小明能过出去玩,全靠你了!!!
Input
多实例,每一组实例占一行,包括三个整数, 分别是 year(0<=year<=10000), month(0<=month<13), day(0<=day<32).
Output
输出有一行,如果数据是不合规则的,请输出”illegal”, 否则请输出那一天是星期几。
Sample Input
2017 11 25
难度系数:2
#include<stdio.h>
int rn(int y)
{
if(y%400==0||(y%4==0&&y%100!=0))
return 1;
return 0;
}
int main()
{
int i,y,m,d;
int t[2][31]= {{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}};
while(scanf("%d %d %d",&y,&m,&d)!=EOF) {
if(rn(y)==0&&m==2&&d>28||y==0||m==0||d==0||d>t[rn(y)][m]||m>12)
{
printf("illegal\n");
}
else
{
for(i=1; i<y; i++)
d+=365+rn(i);
for(i=1; i<m; i++)
d+=t[rn(y)][i];
d%=7;
if(d==0)
printf("Sunday\n");
else if(d == 1)
printf("Monday\n");
else if(d == 2)
printf("Tuesday\n");
else if(d == 3)
printf("Wednesday\n");
else if(d == 4)
printf("Thursday\n");
else if(d == 5)
printf("Friday\n");
else if(d == 6)
printf("Saturday\n");
}
}
return 0;
}