鱼C论坛

 找回密码
 立即注册
查看: 3845|回复: 24

switch语句哪错了

[复制链接]
发表于 2014-8-2 21:34:00 | 显示全部楼层 |阅读模式
1鱼币
#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语句不合法,哪位大神教教我。

最佳答案

查看完整内容

首先你switch 没有加 { } , 然后最好是再每句结束位置加上break;跳出switch 选择避免把下一语句执行过去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-2 21:34:01 | 显示全部楼层
雨水 发表于 2014-8-4 14:14
那我的那个 哪里错了

首先你switch 没有加 { } , 然后最好是再每句结束位置加上break;跳出switch 选择避免把下一语句执行过去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-2 21:51:05 | 显示全部楼层
switch  用法一般是

switch (a)
{
        case 1 : ......;
                    break;
        case 2 :........;
                    break;
}
这个样子的  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-2 22:44:00 | 显示全部楼层
楼上正解!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-2 23:02:23 | 显示全部楼层
对一楼很正确的 没有break 而且最好加一个default:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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;
                }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-3 09:26:34 | 显示全部楼层
你忘记大括号了:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-3 09:40:24 | 显示全部楼层
楼上正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-3 10:06:47 | 显示全部楼层
楼上正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-3 10:13:17 | 显示全部楼层
二楼正解……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-3 11:41:47 | 显示全部楼层
你去看看switch的基本用法吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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");
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-3 16:49:07 | 显示全部楼层
确实是值得思考的一个问题!:shutup:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-3 19:55:43 | 显示全部楼层
{}成对编写 谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-3 20:25:22 | 显示全部楼层
你的switch好像没加大括号。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-3 22:15:45 | 显示全部楼层
ouyangdongxin 发表于 2014-8-2 23:06
#include
using namespace std;
int main()

这是用c++写的啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-3 22:16:43 | 显示全部楼层
我也是,写程序的时候有时会出现一些小错误,很是头疼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-8-4 14:14:26 | 显示全部楼层
挖坑葬己 发表于 2014-8-2 21:51
switch  用法一般是

switch (a)

那我的那个 哪里错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 19:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表