switch语句哪错了
#include <stdio.h>void main()
{
int year,leap;
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
{
leap=1;
}
else
{
leap = 0;
}
}
else leap=1;
}
else leap= 0;
switch(leap)
case 1:printf("This is a leap");
case 0:printf("This is not a leap");
}
编译器提示case语句不合法,哪位大神教教我。
雨水 发表于 2014-8-4 14:14
那我的那个 哪里错了
首先你switch 没有加 { } , 然后最好是再每句结束位置加上break;跳出switch 选择避免把下一语句执行过去 switch用法一般是
switch (a)
{
case 1 : ......;
break;
case 2 :........;
break;
}
这个样子的
楼上正解! 对一楼很正确的 没有break 而且最好加一个default: #include<iostream>
using namespace std;
int main()
{
int date,leap;
while(cin>>date)
{
if(date%4==0)
{
if(date%100==0)
{
if(date%400==0)
leap=1;
else leap=0;
}
else leap=1;
}
else leap=0;
switch(leap)
{case 1:cout<<"This is leap!"<<endl;break;
case 0:cout<<"This is not leap!"<<endl;break;
default:break;
}
}
return 0;
}
#include <stdio.h>
void main()
{
int year,leap;
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
{
leap=1;
}
else
{
leap = 0;
}
}
else leap=1;
}
else leap= 0;
switch(leap)
{
case 1:printf("This is a leap\n");
break;
case 0:printf("This is not a leap\n");
break;
}
} 你忘记大括号了:lol: 楼上正解 楼上正解 二楼正解…… 你去看看switch的基本用法吧 # include <stdio.h>
int main(void)
{
int year, leap;
scanf("%d", &year);
if(year%4 == 0)
{
if(year%100 == 0)
{
if(year%400 == 0)
{
leap = 1;
}
else
{
leap = 0;
}
}
else
leap=1;
}
else
leap= 0;
switch(leap)
{
case 1: printf("This is a leap\n"); break;
case 0: printf("This is not a leap\n");
}
return 0;
} #include <stdio.h>
#include <stdafx.h>
#include <stdlib.h>
void main()
{
int year,leap;
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
{
leap=1;
}
else
{
leap = 0;
}
}
else leap=1;
}
else leap= 0;
switch(leap){
case 1:printf("This is a leap");
break;
case 0:printf("This is not a leap");
break;
}
system("pause");
} 确实是值得思考的一个问题!:shutup: {}成对编写 谢谢。 你的switch好像没加大括号。 ouyangdongxin 发表于 2014-8-2 23:06
#include
using namespace std;
int main()
这是用c++写的啊? 我也是,写程序的时候有时会出现一些小错误,很是头疼 挖坑葬己 发表于 2014-8-2 21:51
switch用法一般是
switch (a)
那我的那个 哪里错了
页:
[1]
2