老师我这段程序错在哪里了?年月求日的程序
匿名课官 核心会员 2017-04-24 23:38:27
3161 4 0

#include<stdio.h>

void main()

{

int year,month,days;

printf("请输入年份与月份");

scanf("%d%d",&year,&month);

switch(month)

case 2:

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

days=29天;

else

days=28天;break;

case 4:case 6:case 9:case 11:

days=30天;break;

default:

days=31天;break;

printf("%d天\n",days);

}




:\c语言\年份月份.cpp(10) : error C2146: syntax error : missing ')' before identifier 'days'

E:\c语言\年份月份.cpp(10) : error C2018: unknown character '0xcc'

E:\c语言\年份月份.cpp(10) : error C2018: unknown character '0xec'

E:\c语言\年份月份.cpp(10) : error C2018: unknown character '0xa3'

E:\c语言\年份月份.cpp(10) : error C2018: unknown character '0xbb'

E:\c语言\年份月份.cpp(11) : error C2143: syntax error : missing ';' before 'else'

E:\c语言\年份月份.cpp(12) : error C2018: unknown character '0xcc'

E:\c语言\年份月份.cpp(12) : error C2018: unknown character '0xec'

E:\c语言\年份月份.cpp(12) : error C2043: illegal break

E:\c语言\年份月份.cpp(13) : error C2046: illegal case

E:\c语言\年份月份.cpp(13) : error C2046: illegal case

E:\c语言\年份月份.cpp(13) : error C2046: illegal case

E:\c语言\年份月份.cpp(13) : error C2046: illegal case

E:\c语言\年份月份.cpp(14) : error C2018: unknown character '0xcc'

E:\c语言\年份月份.cpp(14) : error C2018: unknown character '0xec'

E:\c语言\年份月份.cpp(14) : error C2043: illegal break

E:\c语言\年份月份.cpp(15) : error C2047: illegal default

E:\c语言\年份月份.cpp(16) : error C2018: unknown character '0xcc'

E:\c语言\年份月份.cpp(16) : error C2018: unknown character '0xec'

E:\c语言\年份月份.cpp(16) : error C2043: illegal break


问题来自: switch语句

共 4 个回答

    qqq 资深元老 助教 2574天前

    你仔细看看这一句if((year%400==0||(year%4==0&&year%100!=0)),是不是少括号?

    还有,你这每个数字后面都写个天。。服了。。怎么能把中文字符赋值给变量呢。。

    最后一个问题 你的switch语句块为什么不用大括号括起来。。。

    匿名课官 核心会员 2574天前

    回复 qqq

    非常感谢!但是修改完了还有个问题。

    #include<stdio.h>

    void main()

    {

    int year,month,days;

    printf("ÇëÊäÈëÄê·ÝÓëÔ·Ý");

    scanf("%d%d",&year,&month);

    switch(month)

    {

    case 2:

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

    days=29;break;

    else

    days=28;break;

    case 4:case 6:case 9:case 11:

    days=30;break;

    default:

    days=31;break;

    }

    printf("%dÌì\n",days);

    }


    修改完了,为什么第十二条else还是不对?

    error C2181: illegal else without matching if

    最佳答案

    qqq 资深元老 助教 2567天前

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

    days=29;break;

    else

    days=28;break;

    这一段代码,判断if条件,如果符合那就执行days=29,只有days=29是if语句里的执行语句,不加大括号的话,if只能管到一句,所以break是一定会执行的,那么后面的else就不合法了,应该改成:

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

    {days=29;break;}

    else

    {days=28;break;}


    匿名课官 核心会员 2567天前

    回复 qqq:谢谢老师!

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题