全部问题 > 当前问题

编写的程序还是报错

#include <stdio.h>

main ()

{

int month ,days;

scanf("%d",&month);

switch (month)

{

case 2:

days=28; break;

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

  days=30 ; break;

              default:

 days=31;break;

}

}

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




-----------------Configuration: 判断一个月的天数 - Win32 Debug--------------------

Compiling...

判断一个月的天数.cpp

C:\Users\adm\Desktop\c语言学习\判断一个月的天数.cpp(15) : warning C4508: 'main' : function should return a value; 'void' return type assumed

C:\Users\adm\Desktop\c语言学习\判断一个月的天数.cpp(16) : error C2065: 'days' : undeclared identifier

C:\Users\adm\Desktop\c语言学习\判断一个月的天数.cpp(16) : error C2501: 'printf' : missing storage-class or type specifiers

C:\Users\adm\Desktop\c语言学习\判断一个月的天数.cpp(16) : error C2373: 'printf' : redefinition; different type modifiers

        c:\program files (x86)\microsoft visual studio\vc98\include\stdio.h(329) : see declaration of 'printf'

C:\Users\adm\Desktop\c语言学习\判断一个月的天数.cpp(16) : error C2078: too many initializers

执行 cl.exe 时出错.


赵雨豪 2015-8-10 16:58:08

共 2 个回答

祁老师 2015-8-10 17:04:11

printf语句的位置不对 需要在在最后一个括号前面 

同一个问题不要重复提问 直接点击回复我就可以追击问题

最佳答案

一非 2015-8-10 17:10:17

1.结尾没有大括号(大括号打在最后的printf上面了)

2.你开始没有printf,就直接scanf了

3."%d天\n"格式错误

下面是我自己写的,可以对一下,运行没有问题。报错的时候,你可以点击每一条,它会指出哪里写错了,你可以自己修改

#include <stdio.h>
main()
{
 int year,month;
 printf("请输入年份月份:");
 scanf("%d%d",&year,&month);
 switch(month)
 {
 case 1:case 3:case 5:case 7:case 8:case 10:case 12:
  printf("31天");
  break;
 case 4:case 6:case 9:case 11:
  printf("30天");
  break;
 case 2:
     if((year%400==0)||(year%4==0&&year%100!=0))
  printf("29天");
     else
  printf("28天");
  break;
 default:
  printf("error!");
  break;
 }
}

问题来自: switch语句