第1个回答 2020-01-29
这个问题只要将数组的右上三角形数与左下交换即可。
void
main()
{
char
str[4][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int
i,j,t=0;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
printf("%2d
",str[i][j]);
}
printf("\n");
}
for(i=0;i<=3;i++)
{
for(j=i+1;j<=3;j++)
{
t=str[i][j];
str[i][j]=str[j][i];
str[j][i]=t;
}
}
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
printf("%2d
",str[i][j]);
}
printf("\n");
}
}
但是对于,非正方形数组,暂时还没想出好的办法。