c语言问题啊。。。求高手指点。。。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int n[6][6],temp[5][5];
int i,j,ct;
printf("Input:\n");
for(i=0,ct=1; i<5; i++)
{
for(j=0;j<5;j++)
{
printf("%4d ", ct);
n[i][j] = ct;
temp[i][j] = ct;
ct++;
}
printf("\n");
}
scanf("%d %d %d %d", &n[6][0],&n[6][1],&n[6][2],&n[6][3]);
if(n[6][0]==1)
{
if(n[6][1]==2)
{
for(i=n[6][2]-1;i<(2+n[6][2]-1);i++)
{
for(j=n[6][3]-1;j<(n[6][3]+2-1);j++)
{
n[i][j]=temp[n[6][3]+2-1-j][i];
}
}
}
else if(n[6][1]==3)
{
for(i=n[6][2]-1;i<(3+n[6][2]-1);i++)
{
for(j=n[6][3]-1;j<(3+n[6][3]-1);j++)
{
n[i][j]=temp[3+n[6][3]-1-j][i];
}
}
}
}
else if(n[6][0]==2)
{
if(n[6][1]==2)
{
for(i=n[6][2]-1;i<(2+n[6][2]-1);i++)
{
for(j=n[6][3]-1;j<(2+n[6][3]-1);j++)
{
n[i][j]=temp[j][2+n[6][2]-1-i];
}
}
}
else if(n[6][1]==3)
{
for(i=n[6][2]-1;i<(3+n[6][2]-1);i++)
{
for(j=n[6][3]-1;j<(3+n[6][3]-1);j++)
{
n[i][j]=temp[j][3+n[6][2]-1-i];
}
}
}
}
printf("Output:\n");
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
{
printf("%4d", n[i][j]);
}
printf("\n");
}
return 0;
//exit(0);
}
如果用return 0 退出会提示0x000..2不能read
想知道为什么。。。用的vc6.0
不知道是不是代码有问题~
[解决办法]
代码中出现了很多
if(n[6][0]==1)
如这样的,n[6][0].
而定义是 int n[6][6],temp[5][5];
c/c++数组是从0开始计数的,所以数组下标最大值是 5.
所有下标出现6的都错了
[解决办法]
数组定义的 int a[6],用的时候从0开始的,a[0]-a[5]~~