雨水 发表于 2014-8-2 21:34:00

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-2 21:34:01

雨水 发表于 2014-8-4 14:14
那我的那个 哪里错了

首先你switch 没有加 { } , 然后最好是再每句结束位置加上break;跳出switch 选择避免把下一语句执行过去

挖坑葬己 发表于 2014-8-2 21:51:05

switch用法一般是

switch (a)
{
      case 1 : ......;
                  break;
      case 2 :........;
                  break;
}
这个样子的

大黑鱼 发表于 2014-8-2 22:44:00

楼上正解!

xiasongbin 发表于 2014-8-2 23:02:23

对一楼很正确的 没有break 而且最好加一个default:

ouyangdongxin 发表于 2014-8-2 23:06:44

#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;
}

1980469235 发表于 2014-8-2 23:25:18

#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;
                }
}

yimingpeng 发表于 2014-8-3 09:26:34

你忘记大括号了:lol:

月光骑士 发表于 2014-8-3 09:40:24

楼上正解

沉默默 发表于 2014-8-3 10:06:47

楼上正解

Happy19920311 发表于 2014-8-3 10:13:17

二楼正解……

牡丹花下死做鬼 发表于 2014-8-3 11:41:47

你去看看switch的基本用法吧

coolzf 发表于 2014-8-3 11:50:08

# 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;
}

百日维新 发表于 2014-8-3 12:03:22

#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");
}

cable5881 发表于 2014-8-3 16:49:07

确实是值得思考的一个问题!:shutup:

Angel丶L 发表于 2014-8-3 19:55:43

{}成对编写 谢谢。

methamphetamine 发表于 2014-8-3 20:25:22

你的switch好像没加大括号。

Sccot丶 发表于 2014-8-3 22:15:45

ouyangdongxin 发表于 2014-8-2 23:06
#include
using namespace std;
int main()


这是用c++写的啊?

Sccot丶 发表于 2014-8-3 22:16:43

我也是,写程序的时候有时会出现一些小错误,很是头疼

雨水 发表于 2014-8-4 14:14:26

挖坑葬己 发表于 2014-8-2 21:51
switch用法一般是

switch (a)


那我的那个 哪里错了
页: [1] 2
查看完整版本: switch语句哪错了