问答详情
源自:4-17 switch与if语句的应用

不知道我哪里错了,系统提示我说 检查有没有 2008年的8月8日是该年的第221天,不过我有啊,旁边就是的,好奇怪啊。

#include <stdio.h>int main() {     /* 定义需要计算的日期 */    int year = 2008;    int month = 8;    int d = 8;    int s=0;    if(year%4==0&&year%100!=0||year%400==0)    {    switch(month)    {        case 1: s=s+d;break;        case 2: s=s+31+d;break;        case 3: s=s+31+29+d;break;        case 4: s=s+31+29+31+d;break;        case 5: s=s+31+29+31+30+d;break;        case 6: s=s+31+29+31+30+31+d;break;        case 7: s=s+31+29+31+30+31+30+d;break;        case 8: s=s+31+29+31+30+31+30+31+d;break;        case 9: s=s+31+29+31+30+31+30+31+31+d;break;         case 10: s=s+31+29+31+30+31+30+31+31+30+d;break;        case 11: s=s+31+29+31+30+31+30+31+31+30+31+d;break;        case 12: s=s+31+29+31+30+31+30+31+31+30+31+30+d;break;    }    printf("%d年的%d月%d日是该年的第%d天",year,month,d,s);    }    else     {    switch(month)    {        case 1: s=s+d;break;        case 2: s=s+31+d;break;        case 3: s=s+31+28+d;break;        case 4: s=s+31+28+31+d;break;        case 5: s=s+31+28+31+30+d;break;        case 6: s=s+31+28+31+30+31+d;break;        case 7: s=s+31+28+31+30+31+30+d;break;        case 8: s=s+31+28+31+30+31+30+31+d;break;        case 9: s=s+31+28+31+30+31+30+31+31+d;break;         case 10: s=s+31+28+31+30+31+30+31+31+30+d;break;        case 11: s=s+31+28+31+30+31+30+31+31+30+31+d;break;        case 12: s=s+31+28+31+30+31+30+31+31+30+31+30+d;break;    }    printf("%d年的%d月%d日是该年的第%d天",year,month,d,s);    }    return 0;}


提问者:励志成为大佬 2019-03-06 15:59

个回答

  • 慕村4954589
    2019-03-07 14:18:37
    已采纳

    我试了你的程序,可以运行输出结果,我就是把那个"%d年的%d月%d日是该年的第%d天"这个里面的第一个年字后面“的”去掉了。你再看下(,year,month,d,s)里的逗号格式对不对。

  • 慕村4954589
    2019-03-07 14:20:40

    https://img.mukewang.com/5c80b81f00011e7908260596.jpg这是运行结果。