这个问题,我的代码自己运行没问题,但是提交就过不了?有人可以帮我看看我哪里不对吗?

img


#include<stdio.h>
char a[100][100];
void c(char a[][100],int n,int x);
void le(char a[][100],int n,int x);
void change(char a[][100],int x,int y);
void up(char a[][100],int n,int x);
void print(int n);
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s",a[i]);
}
int m;
scanf("%d",&m);
char b[m][22];
int i,x[m];
for(i=0;i<m;)
{
scanf("%s",b[i]);
if(b[i][0]=='p')
{
i++;
continue;
}
scanf("%d",&x[i]);
i++;
}
for(int j=0;j<i;j++)
{
switch (b[j][0]) {
case 'c':c(a,n,x[j]);
break;
case 'a':for(int k=0;k<3;k++)
c(a,n,x[j]);
break;
case 'l':le(a,n,x[j]);
break;
case 'r':for(int k=0;k<n-1;k++)
le(a,n,x[j]);
break;
case 'u':up(a,n,x[j]);
break;
case 'd':for(int k=0;k<n-1;k++)
up(a,n,x[j]);
break;
case 'p':print(n);
break;
}
}
}
void c(char a[][100],int n,int x)
{
char t[n][n];
for(int i=x-1,j=n-x;i<n-x+1;i++,j--)
{
t[i][n-x]=a[x-1][i];
t[n-x][i]=a[j][n-x];
t[i][x-1]=a[n-x][i];
t[x-1][i]=a[j][x-1];
}
for(int i=x-1,j=n-x;i<n-x+1;i++,j--)
{
a[i][n-x]=t[i][n-x];
change(a,i,n-x);
a[n-x][i]=t[n-x][i];
change(a,n-x,i);
a[i][x-1]=t[i][x-1];
change(a,i,x-1);
a[x-1][i]=t[x-1][i];
change(a,x-1,i);
}
}
void le(char a[][100],int n,int x)//有错误
{
char t[n][n];
for(int i=1;i<n;i++)
{
t[x-1][i-1]=a[x-1][i];
}
t[x-1][n-1]=a[x-1][0];
for(int i=0;i<n;i++)
{
a[x-1][i]=t[x-1][i];
change(a,x-1,i);
}
}
void change(char a[][100],int x,int y)
{
if(a[x][y]>='A'&&a[x][y]<='Z')
a[x][y]+=32;
else if(a[x][y]>='a'&&a[x][y]<='z')
a[x][y]-=32;
}
void up(char a[][100],int n,int x)
{
char t[n][n];
for(int i=1;i<n;i++)
{
t[i-1][x-1]=a[i][x-1];
}
t[n-1][x-1]=a[0][x-1];
for(int i=0;i<n;i++)
{
a[i][x-1]=t[i][x-1];
change(a,i,x-1);
}
}
void print(int n)
{
for(int k=0;k<n;k++)
{
for(int j=0;j<n;j++)
{
printf("%c",a[k][j]);
}
printf("\n");
}
}