龙岩江山睡美人 门票:一道未通过的C程序

来源:百度文库 编辑:高校问答 时间:2024/04/30 04:01:53
#define N 3
void str(int s[N][N],int n)
{int i,j,t;
for(i=0;i<n/2;i++)
for(j=0;j<n;j++)
{t=s[i][j];
s[i][j]=s[n-i-1];
s[n-i-1]=t;}
}
main()
{int s[N][N],i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&s[i][j]);
str(s,N);
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
printf("%d",s[i][j]);
printf("\n");}
}
调试的时候未通过,显示:
lvalue required in function str

s[N][N] 是二维数组,
s[n-i-1]; 变成一维数组。不可以。

s[N][N]的结果要带出void str(。。。),应定义为指针。否则结果带不出来。当然,你可以定义s[N][N]为全局量,接着 #define N 3 这行,str就不列s为参数,main里也不要int s[N][N]。