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

来源:4-17 switch与if语句的应用

励志成为大佬

2019-03-06 15:59

#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;}


写回答 关注

2回答

  • 慕村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这是运行结果。

    励志成为大佬

    谢谢啦!

    2019-03-07 14:28:39

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926896 学习 · 21532 问题

查看课程

相似问题