您的位置:首页 > 其它

HBU OJ001

2020-02-03 04:24 78 查看

HBU OJ001
输入某年某月某日,判断这一天是这一年的第几天?
以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天.

未学数组时(现在回顾觉得自己当初好傻…):

#include<stdio.h>
int main()
{
int year,month,day,more,sum;
printf("please input year,month,day\n");
scanf("%d,%d,%d\n",&year,&month,&day);
//这里用switch语句真是太机智了,我太菜了
switch(month){
case 1:
sum=0;
break;
case 2:
sum=31;
break;
case 3:
sum=59;
break;
case 4:
sum=90;
break;
case 5:
sum=120;
break;
case 6:
sum=151;
break;
case 7:
sum=181;
break;
case 8:
sum=212;
break;
case 9:
sum=243;
break;
case 10:
sum=273;
break;
case 11:
sum=304;
break;
case 12:
sum=334;
break;
}
//判断闰年
if(year%4==0&&year%100!=0||year%400==0){
more = 1;
}
else more = 0;
if(more=1&&month>3){
sum += 1;
}
sum += day;
printf("It is the %dth day.",sum);
return 0;
}

学完数组后,数组大法好!

#include<stdio.h>
int main()
{
int year,month,day,more,sum = 0,i;
printf("please input year,month,day\n");
scanf("%d,%d,%d\n",&year,&month,&day);
int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
if(year%4==0&&year%100!=0||year%400==0){
days[1] += 1;
}
for(i=0;i<month;i++){
sum += days[i];
}
printf("It is the %dth day.",sum);
return 0;
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
绀香零八 发布了32 篇原创文章 · 获赞 10 · 访问量 966 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: