求哪位大神可以帮我看看到底是哪里错了?

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

什么都不会的人

2020-05-07 10:55

#include <stdio.h>
int main() 
{
    int year = 2008;
    int month = 8;
    int day = 8;
    int num=0;
    switch(month)
    case 1;
    num=0;
    break;
    case 2;
    num=30;
    break;
    case 3;
    num=59;
    break;
    case 4;
    num=90;
    break;
    case 5;
    num=120;
    break;
    case 6;
    num=151;
    break;
    case 7;
    num=181;
    break;
    case 8;
    num=212;
    break;
    case 9;
    num=243;
    break;
    case 10;
    num=273;
    break;
    case 11;
    num=304;
    break;
    case 12;
    num=334;
    break;
    if(year%4==0)
    {
        num+=1;
    }
    num+=day;
    printf("%d\n",day);
 return 0;
}


写回答 关注

1回答

  • 韩旭同学
    2020-05-07 14:40:56

    第一 case是冒号结尾哦。 第二,闰年判定方式是能被4或400整除但不能被100整除。所以应该是if(year %4 ==0 || year %400 ==0 && year %100 ==!0)。第三,你没有判定闰年二月多加1天,闰年多加不加1天有两种情况,一是在2月前就不用加,但是在2月后就要加,所以需要有

        if (year % 4 ==0 || year % 400 == 0 && year % 100 ==!0)

            flag = 1;

        else

            flag = 0;

        if (flag = 1 && month > 2)

            sum ++;


C语言入门

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

926207 学习 · 20797 问题

查看课程

相似问题