没出现运行结果,请大神帮我看看原因,谢谢

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

慕UI7602567

2016-05-27 00:07

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    /*

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

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

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

     */

    int i;

    int number=0;

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

    {

        if(i%2!=0)

        number+=31;

        else

        {

          if(i=2)

          {

        

           switch((year%4==0)&&(year%100!=0))

             {

              case 1:number+=29;break;

              case 0:number+=28;break;

             }

          }

          else

          number+=30;

        }

        

    }

    number+=day;

    printf("%d年%d月%d日是第%d天",year,month,day,number);


return 0;

}



写回答 关注

2回答

  • _旋律
    2016-05-27 09:37:06
    已采纳

    if(i==2) //‘=’是赋值‘==’才是判断

    //第二个else应该删掉,第一个else意思是指if(i%2==0),只需要在执行语句中指出特殊的i==2即可

    switch(year%4==0&&year%100!=0||year%400==0) //判断语句不全,**00的年份以400年为一个周期,不算的话会少一天

    //事实上7、8月都是31天,如果简单的按奇偶月来算的话,应该会比正常的天数少一天,改进的方法为‘++’

    慕UI760...

    非常感谢!

    2016-05-28 12:17:58

    共 1 条回复 >

  • 冰_冰_
    2016-05-27 08:30:28

    少判断一个year%400

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题