鱼C论坛

 找回密码
 立即注册
查看: 1720|回复: 6

[已解决]关于switch case 问题

[复制链接]
发表于 2017-12-26 19:26:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
int main(int argc, char* argv[])
{
        int array[25][35]={0};
        array[13][13]=2;
        array[13][12]=2;
        array[13][11]=2;
        int x,y,z,l;
        system("color f4");
        for(int i=0;i<25;i++)
        {
                for(int j=0;j<35;j++)
                {
                        if(i==0)
                                array[0][j]=5;
                        if(i==24)
                                array[24][j]=5;
                        if(j==0)
                                array[0]=5;
                        if(j==34)
                                array[34]=5;
                        if(array[j]==5)
                                printf("□");
                        else if(array[j]==2)
                                printf("■");
                        else
                                printf("  ");
                }
                printf("\n");
        }
   while(1)
                {
                        switch(array[x][y])
                        {
                        case 1:
                                array[x-=1][y]=1;
                                break;
                        case 2:
                                array[x+=1][y]=2;
                                break;
                        case 3:
                                array[x][y-=1]=3;
                                break;
                        case 4:
                                array[x][y+=1]=4;
                                break;
                                }
            switch(array[z][l])
                        {
                        case 1:
                                array[z][l]=0;
                                        z--;
                                break;
                        case 2:
                                array[z][l]=0;
                                z++;
                                break;
                        case 3:
                                array[z][y]=0;
                                l--;
                                break;
                        case 4:
                                array[z][l]=0;
                                l++;
                                break;
                        }
    for(int i=0;i<25;i++)
        {
                for(int j=0;j<35;j++)
                {
                        if(array[j]==5)
                                printf("□");
                        else if(array[j]==2)
                                printf("■");
                        else
                                printf("  ");
                }
                printf("\n");
        }
      Sleep(1000);
                }
        return 0;
}
switch这么用有什么问题吗 ? 编译没错误  运行时提示内存不能为read ITZTBN2[~5%{E5CABLNW@UM.png [attachimg]
最佳答案
2017-12-27 10:43:27
你查查,应该有地方数组越界访问了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-26 21:10:51 From FishC Mobile | 显示全部楼层
跟代码无关
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-27 10:43:27 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
你查查,应该有地方数组越界访问了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-27 23:25:26 | 显示全部楼层
请问你代码 贴全了么?  请问 xy  在哪初始化了, 另外你确定 编译器没有报错,  二维数组你用 数组的方式取访问 编译器 不会报错么?

类似这个位置
   if(j==0)
                                array[0]=5;
或者这个位置
  if(j==34)
                                array[34]=5;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-29 10:46:38 From FishC Mobile | 显示全部楼层
sp1ral 发表于 2017-12-27 10:43
你查查,应该有地方数组越界访问了

根据你的提示看了下switch里面数组确实会越界,不过我用if限制x,y,的值还是会提示内存不能为read,是我方法不对还是不能把switch这么用呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2017-12-29 10:49:12 From FishC Mobile | 显示全部楼层
新建word 发表于 2017-12-27 23:25
请问你代码 贴全了么?  请问 xy  在哪初始化了, 另外你确定 编译器没有报错,  二维数组你用 数组的方式 ...

有定义呀system上面,我是用二维数组的方式访问的呀array【0】【y】我是这样访问的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-29 10:50:12 From FishC Mobile | 显示全部楼层
BngThea 发表于 2017-12-26 21:10
跟代码无关

就是运行到switch那出错,楼下提示了下,哪里无线循环是会数组越界
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 16:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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