我想取二维数组"arr"中的值,并使用for循环在每次迭代中区分列和行索引,将它们以不同的顺序放置在"arrRotated"中。
我试过这个:
for (int i = 6; i >= 0; i--)
{
for (int count = 0; count <= 6; count++)
{
arrRotated[count][i] = arr[i][count];
}
但我得到一个错误:
表达式必须是指向完整对象类型的指针
这是完整的代码:
#include <stdio.h>
void DisplayArray2D(char arr[][7]);
void RotateArray2D(char arr[][], char arrRotated[][]);
int main()
{
char arrRotated[7][7];
char arr[7][7] =
{
{ '*',' ',' ',' ',' ',' ',' '},
{ '*','*',' ',' ',' ',' ',' '},
{ '*','*','*',' ',' ',' ',' '},
{ '*','*','*','*','*','*','*'},
{ '*','*','*',' ',' ',' ',' '},
{ '*','*',' ',' ',' ',' ',' '},
{ '*',' ',' ',' ',' ',' ',' '},
};
RotateArray2D(arrRotated, arr);
DisplayArray2D(arrRotated[7][7]);
}
void DisplayArray2D(char arr[][7])
{
int i, count;
for (i = 0; i < 7; i++)
{
for (count = 0; count < 7; count++)
printf("%c", arr[i][count]);
printf("\n");
}
}
void RotateArray2D(char arr[][], char arrRotated[][])
{
for (int i = 6; i >= 0; i--)
{
for (int count = 0; count <= 6; count++)
{
arrRotated[count][i] = arr[i][count];
}
}
}
1条答案
按热度按时间r7s23pms1#
在声明
void RotateArray2D(char arr[][], char arrRotated[][])
时,必须指定第一维的大小。对于DisplayArray2D
,可以正确地指定大小。下面是更正后的行:您还使用交换的参数调用
RotateArray2D
。应该是
Demo