【发布时间】:2015-11-05 12:31:52
【问题描述】:
我正在尝试将我的矩阵分割为 2×2 方阵。但我遇到了编译错误,不知道为什么。我的代码:
int main()
{
int rowsize,n,i,j,l,k, var=0,var2=0,count = 0,square2by2[2][2];
printf("Size of square matrix: " );
scanf("%d",&n);
rowsize=n;
int *matrix = (int *)malloc(rowsize * rowsize * sizeof(int));
for (i = 0; i < rowsize; i++)
for (j = 0; j < rowsize; j++)
*(matrix + i*rowsize + j) = ++count;
for (i = 0; i < rowsize; i++)
{
for (j = 0; j < rowsize; j++)
{
printf("%d ", *(matrix + i*rowsize + j));
}
printf("\n");
}
for( i=0, l=var2 ;i<2 , l<var2+rowsize ;i++,l++)
{
for( j=0 , k=var ; j<2, k<var+2 ;j++,k++)
{
square2by2[i][j]=matrix[l][k]; // error line
}
if(i==1)
{
var++;
if(var==rowsize-1)
{
printf("\n");
for(int x=0;x<2;x++)
{
printf("\n");
for(int y=0;y<2;y++)
{
printf("%d\t",square2by2[x][y]);
}
}
var = 0;
i-=2;
l-=1;
if(l==rowsize+1)
{
break;
}
}
else
{
i-=2;
l-=2;
printf("\n");
for(int x=0;x<2;x++)
{
printf("\n");
for(int y=0;y<2;y++)
{
printf("%d\t",square2by2[x][y]);
}
}
}
}
return 0;
}
错误是
37 36 [错误] 数组下标的无效类型 'int[int]' 为什么会出现这个错误?
【问题讨论】:
-
您是否尝试过...谷歌搜索?
-
我已经尝试过了,但我无法解决问题
-
真的是复制品吗?接受的答案在 C++ 和 c 之间划清界限。但是看看那里的三个答案不会有什么坏处,@pseudocode - 尽管它是一个 C++ 问题,但也许其中一个可以帮助你
标签: c matrix compiler-errors