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

请问,错在哪

#include <stdio.h>

int main() 

    /* 定义需要计算的日期 */

    int year = 2008;

    int month = 8;

    int day = 8;

    int sum;

    switch(month)

    {

        case1:sum=0;break;

        case2:sum=31;break;

        case3:sum=59;break;

        case4:sum=90;break;

        case5:sum=120;break;

        case6:sum=151;break;

        case7:sum=181;break;

        case8:sum=212;break;

        default:printf("哈哈,就到八月");break;

        

    }

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

    

        sum=1+sum+day;

    

    

    else

    

        printf("是八月");

    

    printf("%d"sum);

    

    








提问者:慕仰0546200 2020-10-30 14:28

个回答

  • 圣萝甘缔
    2020-10-30 15:54:23
    已采纳

    1. 在你代码的22行,“与或非”的“与”是”&&“。

    2. 在你代码的24行,在条件为闰年的情况下,把结果全设为”1+sum+day“是不对的。闰年只有2月多一天,所以应该加一个条件:

    3. if(month>2)
    4.     sum++;

    5.最好讨论一下平闰年的问题