运行成功输出错误 求大神解惑

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

慕桂英7447609

2019-03-08 15:34

不知道哪里有问题? 求指点求解惑!

https://img1.mukewang.com/5c821ac40001d1cb09590599.jpg

写回答 关注

4回答

  • 你又以为你是主角
    2019-03-28 22:26:30

    你的第36行,有点问题,应该是

    if (flag==1&&month>2),必须满足同时两个条件。(闰年 和 月份>2)。才行

  • 醉卧屋檐听风雨
    2019-03-19 19:37:36

    哪有你这样做的,代码太多冗余;直接找规律就好了。就只算1--7月的就行了,这7个月中,除了2月需要判断是否为闰年外,其他的月份都可以用奇偶性来判断。-.-!

    #include <stdio.h>

    int main() 

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

        int year = 2008;

        int month = 8;

        int day = 8;

        int i,days,twoMn,sum;//自定义变量

        /*

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

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

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

         */

         sum=0;

         if (((year%4==0)&&(year%100!=0))||(year%400==0))//判断是否为闰年

            {

              twoMn=29;//如果为闰年,则2月份为29天

            } else {twoMn=28;}//否则为28天


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

        {

            if(i%2==0){ days=30;} else {days=31;}//根据月份奇偶性得出当前循环的月份有多少天

            

            switch(i)

            {

                case 2: sum += twoMn;continue;//如果是2月份,则加上上面得出的2月份天数,后面进行跳过,否则多加上了个月的天数;

            }

            sum+=days;//除2月外 天数总和加上当月得到的天数

        }

        sum+=8;//由于8月份8号未满一个月,只多了8天,则外部直接加上8月的第8天

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


  • 慕桂英7447609
    2019-03-10 10:05:01

    我没说8月没有31天啊,month=month-1了 ,case7才是

  • 湮灭潮汐
    2019-03-09 14:41:18

    8月8“日”,你输入的是“号”,并且8月有31天。

C语言入门

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

926206 学习 · 20797 问题

查看课程

相似问题