一个简单的题目出错了,帮忙来看看,该如何解决
一个简单的题目出错了,帮忙来看看
输入某年某月某日,判断这一天是这一年的第几天。
提示: 1,以3月5日为列,应该先把前两个月的天数加起来,然后再加上5天即为本年的第几天。
2,需要考虑闰年的特殊情况,如果输入的年份是闰年且输入的月份大于3时,需要考虑多加一天。
这是我自己做的,但是错了,哥哥姐姐门帮忙改一下``x是指最后结果
switch(month)
{
case 12:
day += 31;
case 11:
day += 30;
case 10:
day += 31;
case 9:
day += 30;
case 8:
day += 31;
case 7:
day += 31;
case 6:
day += 30;
case 5:
day += 31;
case 4:
day += 30;
case 3:
day += 31;
case 2:
/*判断是否是闰年,如果是,2月就加29天,如果不是就加28天*/
if((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0))
day += 29;
else
day += 28;
case 1:
day += 31;
}
x = month - 1 + day;
printf( "\n%d ", x);
------解决方案--------------------
大致写了一下,发现,原来case 12 可以省略的
#include <stdio.h>
int main()
{
int year, month, dat;
int day = 0;
printf( "Please input year, month and date: ");
scanf( "%d %d %d ", &year, &month, &dat);
switch(month-1)
{
case 11:
day += 30;
case 10:
day += 31;
case 9:
day += 30;
case 8:
day += 31;
case 7:
day += 31;
case 6:
day += 30;
case 5:
day += 31;
case 4:
day += 30;
case 3:
day += 31;
case 2:
/*判断是否是闰年,如果是,2月就加29天,如果不是就加28天*/
if((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0))
day += 29;
else
day += 28;
case 1:
day += 31;
}
dat += day;
printf( "\n%d ", dat);
return 0;
}
输入某年某月某日,判断这一天是这一年的第几天。
提示: 1,以3月5日为列,应该先把前两个月的天数加起来,然后再加上5天即为本年的第几天。
2,需要考虑闰年的特殊情况,如果输入的年份是闰年且输入的月份大于3时,需要考虑多加一天。
这是我自己做的,但是错了,哥哥姐姐门帮忙改一下``x是指最后结果
switch(month)
{
case 12:
day += 31;
case 11:
day += 30;
case 10:
day += 31;
case 9:
day += 30;
case 8:
day += 31;
case 7:
day += 31;
case 6:
day += 30;
case 5:
day += 31;
case 4:
day += 30;
case 3:
day += 31;
case 2:
/*判断是否是闰年,如果是,2月就加29天,如果不是就加28天*/
if((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0))
day += 29;
else
day += 28;
case 1:
day += 31;
}
x = month - 1 + day;
printf( "\n%d ", x);
------解决方案--------------------
大致写了一下,发现,原来case 12 可以省略的
#include <stdio.h>
int main()
{
int year, month, dat;
int day = 0;
printf( "Please input year, month and date: ");
scanf( "%d %d %d ", &year, &month, &dat);
switch(month-1)
{
case 11:
day += 30;
case 10:
day += 31;
case 9:
day += 30;
case 8:
day += 31;
case 7:
day += 31;
case 6:
day += 30;
case 5:
day += 31;
case 4:
day += 30;
case 3:
day += 31;
case 2:
/*判断是否是闰年,如果是,2月就加29天,如果不是就加28天*/
if((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0))
day += 29;
else
day += 28;
case 1:
day += 31;
}
dat += day;
printf( "\n%d ", dat);
return 0;
}