为了账号安全,请及时绑定邮箱和手机立即绑定

究竟哪里错了?

总是说要我检查输出结果是否包含“......”

正在回答

6 回答

#include <stdio.h>
int main()
{
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    /*
     * 请使用switch语句,if...else语句完成本题
     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
     * 小编还是希望大家独立完成哦~
     */
    int flag,sum;
    switch(month)
    {
        case 1:sum=day;break;
        case 2:sum=31+day;break;
        case 3:sum=31+ 28+day;break;
        case 4:sum=31+ 28+ 31+day;break;
        case 5:sum=31+ 28+ 31+ 30+day;break;
        case 6:sum=31+ 28+ 31+ 30+ 31+day;break;
        case 7:sum=31+ 28+ 31+ 30+ 31+ 30+day;break;
        case 8:sum=31+ 28+ 31+ 30+ 31+ 30+ 31+day;break;
        case 9:sum=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+day;break;
        case 10:sum=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+30+day;break;
        case 11:sum=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ 30+ 31+day;break;
        case 12:sum=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ 30+ 31+ 30+day;break;
    }
        if(year%400==0||year%4==0&&year%100!=0)
        {
            flag=1;
        }
        else flag=0;
    if(flag=1&&month>=2)
    {
        sum=sum+ 1;
    }
    printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
 return 0;
}

  1. +后面要有空格区分+不是属于后面的常数

  2. 逻辑符号==不是=

  3. else后没有表达式是省略else

  4. sum输出时没有“

0 回复 有任何疑惑可以回复我~
#1

梦之契约 提问者

什么叫“else后没有表达式是省略else”?
2017-08-11 回复 有任何疑惑可以回复我~
#2

梦之契约 提问者

非常感谢!
2017-08-12 回复 有任何疑惑可以回复我~
#3

0_尘_0 回复 梦之契约 提问者

一道选择题是有两个选项,此时一个用if,一个用else。但如果是只有一个选项那就只有if没有else啦。
2017-08-21 回复 有任何疑惑可以回复我~

 

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    /*

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

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

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

     */

     int sum,flag;

    switch(month)

    {

        case 1:sum=day;break;

        case 2:sum=31+day;break;

        case 3:sum=31+28+day;break;

        case 4:sum=90+day;break;

        case 5:sum=120+day;break;

        case 6:sum=151+day;break;

        case 7:sum=181+day;break;

        case 8:sum=212+day;break;

        case 9:sum=243+day;break;

        case 10:sum=273+day;break;

        case 11:sum=304+day;break;

        case 12:sum=334+day;break;

        default:printf("There is only 12 months a year!");

        break;

    }

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

    flag=1;

    else

    flag=0;

    if(flag==1&&month>=2)

    {

     sum=sum+1;

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

    }

    else

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

return 0;

}


0 回复 有任何疑惑可以回复我~

而且每个else后要加   ;

0 回复 有任何疑惑可以回复我~

首先==和=是不一样的==是逻辑判断符号=是运算符号;if中应该用==

其次第二个else多余

0 回复 有任何疑惑可以回复我~

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

sum后面的双引号也要去掉

0 回复 有任何疑惑可以回复我~
#1

梦之契约 提问者

改了后还是不行
2017-08-11 回复 有任何疑惑可以回复我~

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

这个应该是if(year%400=0||(year%4=0&&year%100!=0))

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

究竟哪里错了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信