#include<stdio.h>
int main()
{
int year=2008;
int month=8;
int date=8;
int d=0,m;
for(m=1;m<month;m++)
{
d+=31;
switch(m)
{
case 2:
if(year%4==0)
{
d-=2;
}
else
{
d-=3;
}
break;
case 4:
d-=1;
break;
case 6:
d-=1;
break;
case 9:
d-=1;
break;
case 11:
d-=1;
break;
}
}
d+=date;
printf("%d",d);
return 0;
}
输出之后现实的是这个
你这个程序题目要求是用if和switch函数,而你咋用了for呢?从你后面的代码感觉你对switch函数还不是很熟吧?搞清switch函数的本质就好了,如果真的不懂欢迎再问。
感觉你想得有点复杂了,我也没咋看懂你的程序,也许是我太蠢了吧!但是讲真你可以重新理一下思绪,换个思路可能程序可读性更高,对于一个程序猿来说保证程序可读性可是很重要的哦。不知道我的回答对你会不会有帮助 ?
这是我的程序:
int year = 2008;
int month = 8;
int day = 8;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
day += 29;
else
day += 28;
switch (month)
{
case 8:
day += 31+31+30+31+30+31;
}
printf("2008年8月8日是该年的第%d天", day);
return 0;
呃,刷新之后就显示212了……可答案是221……这个它具体是怎么执行的啊