麻烦各位大佬,帮忙看看,为啥这串代码在这跑出来和在线编译器的结果不一样呢

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

重恩

2022-08-19 19:36

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    int flag;

    int sum,i;

    /*

     * 请使用switch语句,if...else语句完成本题

     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”

     * 小编还是希望大家独立完成哦~

     */

     if(year % 4 == 0)

     {

         flag = 0;

     }

     else

     {

         flag = 1;

     }

     switch(flag)

     {

         case 0 :

         for(i=1;i<month;i++)

         {

if(i%2!=0)

{

sum+=31;

}

else if(i==2)

{

sum+=29;

}

else

{

sum+=30;

}

 

         }

sum=sum+day;

         printf("%d年%d月%d日这一天,是该年中的第%d天",year,month,day,sum);

         break;

         case 1 :

         for(i=1;i<month;i++)

         {

if(i%2!=0)

{

sum+=31;

}

else if(i==2)

{

sum+=28;

}

else

{

sum+=30;

}

 

         }

sum=sum+day;

          printf("%d年%d月%d日这一天,是该年中的第%d天",year,month,day,sum);

         break;

     }

    return 0;

    

}


写回答 关注

1回答

  • weixin_幕布斯5243638
    2022-09-30 23:17:44

    swith的括号中不应该是flag而是month

C语言入门

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

926028 学习 · 20793 问题

查看课程

相似问题