求c语言改错 error C2109: 下标要求数组或指针类型?
/*魔方阵*/
#include
int main()
{
int i,j,a,n;
int arr[100][100];
printf("请输入n,n为100内奇数\n");
scanf("%d\n",n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)a[i][j]=0;
i=1;j=n/2;
for(a=2;a<=n*n;a++)
{
if(i==1)i=n;
else i--;
if(j==n)j=1;
else j++;
if((arr[i][j]!=0)||(i==1||j==n))j++;
arr[i][j]=a;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)printf("%d ",a[i][j]);
printf("\n");
}
getchar();
}
vc++2008编译,如下错误提示:error C2109: 下标要求数组或指针类型
2个回答
重装下热血就可以了
◆◆
评论读取中....
请登录后再发表评论!
◆◆
修改失败,请稍后尝试
1. scanf("%d\n",&n);
2. if((arr[i][j]!=0)||(i==1||j==n))j++;, 逻辑有问题,数组越界
◆◆
评论读取中....
请登录后再发表评论!
◆◆
修改失败,请稍后尝试
精华知识