| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4871 人关注过本帖, 1 人收藏
标题:画图函数中switch中出现非法case 什么意思啊
只看楼主 加入收藏
悔悟
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2012-7-22
结帖率:75%
收藏(1)
已结贴  问题点数:10 回复次数:6 
画图函数中switch中出现非法case 什么意思啊
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define n 10//地图大小
#define x 3//箱子数
#define y 2//位置
#define b 5//箱子
#define r 7//
int a[n][n]={
    {9,9,9,9,9,9,9,9,9,9},
{9,8,1,1,1,1,9,y,y,9},
{9,1,9,1,1,1,9,1,1,9},
{9,1,9,1,y,9,9,1,1,9},
{9,1,1,1,1,1,b+1,1,1,9},
{9,1,1,1,1,b+1,1,1,1,9},
{9,1,1+b,1,1,1,9,1,1,9},
{9,1,1,1,1,1,1,9,1,9},
{9,1,1,1,1,1,1,9,1,9},
{9,9,9,9,9,9,9,9,9,9}
};
int cont;
void move(int m,int g,int i,int j);//移动函数
void huatu(int a[n][n]);//画图
int main(void)
{
    char ch;
    int m=2;
    int g=2;
    huatu(a);
    while(1)
    {
    fflush(stdin);
    ch=getch();
    switch(ch)
    {
    case 'w': move( m, g,-1,0);break;
    case 's': move( m, g,1,0);break;
    case 'a': move( m, g,0,-1);break;
    case 'd': move( m, g,0,1);break;
    };
    huatu(a);
    if(cont==x)
        printf("成功\n");};
    return 0;

}
void move(int m,int g,int i,int j)
{
    if(a[m+i][g+j]==9)//撞墙
        a[m][g]=r+1;
    else if(a[m+i][g+j]==b+1&&a[m+2*i][g+2*j]==9)//箱子撞墙
        a[m][g]=r+1;
    else if(a[m+i][g+j]==b+1&&a[m+2*i][g+2*j]==y)//箱子入位子
    {
        a[m][g]-=r;
        a[m+i][g+j]-=b;
        a[m+i][g+j]+=r;
        a[m+2*i][g+2*g]+=b;
        m+=i;
        g+=j;
    }
    else if(a[m+i][g+j]==b+1&&a[m+2*i][g+2*j]==1)//推动箱子
    {
        a[m][g]-=r;
        a[m+i][g+j]-=b;
        a[m+i][g+j]+=r;
        a[m+2*i][g+2*j]+=b;
        m+=i;
        g+=j;
    }
    else  {a[m][g]-=r;
    a[m+i][g+j]+=r;
    m+=i;
    g+=j;
    }
}
void huatu(int a[n][n])
{
    int cont=0;
    int i,j;
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {
            if(a[i][j]==b+y)
            {cont++;}
            switch (a[i][j])
            case 9:printf("");break;
            case 8:printf("");break;
            case 5:printf("");break;
            case y:printf("");break;
            case y+b:printf("");break;
            case r+y:printf("");break;
                default printf("");
        };
//return cont;
}

C:\Documents and Settings\Administrator\桌面\111\ccc.c(88) : error C2046: illegal case
C:\Documents and Settings\Administrator\桌面\111\ccc.c(89) : error C2046: illegal case
C:\Documents and Settings\Administrator\桌面\111\ccc.c(90) : error C2046: illegal case
C:\Documents and Settings\Administrator\桌面\111\ccc.c(91) : error C2046: illegal case
C:\Documents and Settings\Administrator\桌面\111\ccc.c(92) : error C2046: illegal case
C:\Documents and Settings\Administrator\桌面\111\ccc.c(93) : error C2146: syntax error : missing ':' before identifier 'printf'
C:\Documents and Settings\Administrator\桌面\111\ccc.c(93) : error C2047: illegal default
执行 cl.exe 时出错.
搜索更多相关主题的帖子: 画图 
2012-08-18 22:24
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
学过怎样使用编译器么?

授人以渔,不授人以鱼。
2012-08-18 22:27
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:3 
楼主是应该 "悔悟" 一下
2012-08-18 22:36
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:3 
    switch (a[i][j])
    {
        case 9:printf("■");break;
        case 8:printf("◎");break;
        case 5:printf("◇");break;
        case y:printf("○");break;
        case y+b:printf("※");break;
        case r+y:printf("※");break;
        default: printf("□");
    }

最大的问题 这里没大括号 其次default少冒号 其他毛病可能还有 要仔细啊
2012-08-18 22:37
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
gcc a.c
a.c: 在函数‘huatu’中:
a.c:93:13: 错误:重复的 case 常量
a.c:88:6: 错误:已在这里使用过
Compilation exited abnormally with code 1 at Sat Aug 18 22:35:06

突然发现gcc在linux下有中文诶 win下的那个行不行呢
2012-08-18 22:38
悔悟
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2012-7-22
收藏
得分:0 
回复 2楼 TonyDeng
什么意思啊  没听懂
2012-08-18 22:42
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用悔悟在2012-8-18 22:42:41的发言:

什么意思啊  没听懂

可能是让你学会看编译信息
2012-08-18 22:55
快速回复:画图函数中switch中出现非法case 什么意思啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028935 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved