编写函数将一个nxn的二维矩阵按下面要求转置.例如:原来有3x3的矩阵:1 2 3 转置后为:9 6 34 5 6 8 5 27 8 9 7 4 1
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 10:15:53
编写函数将一个nxn的二维矩阵按下面要求转置.例如:原来有3x3的矩阵:1 2 3 转置后为:9 6 34 5 6 8 5 27 8 9 7 4 1
编写函数将一个nxn的二维矩阵按下面要求转置.例如:原来有3x3的矩阵:
1 2 3 转置后为:9 6 3
4 5 6 8 5 2
7 8 9 7 4 1
编写函数将一个nxn的二维矩阵按下面要求转置.例如:原来有3x3的矩阵:1 2 3 转置后为:9 6 34 5 6 8 5 27 8 9 7 4 1
就是将矩阵逆时针旋转90度~然后交换8 2 和1 4. 39
注意观察旋转后的矩阵和原矩阵的坐标关系~~有联系的~
#include "stdio.h"
#define N 3
int main()
{
int a[N][N], b[N][N];
int i = 0, j =0;
int temp = 0;
/*初始化a,b数组*/
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
scanf("%d",&a[i][j]);
}
}
/*向左旋转90度*/
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
b[i][j] = a[j][N - i -1];
}
}
for ( i = 0; i < N; i++)
{
temp = b[i][0];
b[i][0] = b[i][2];
b[i][2] = temp;
}
/*输出b数组*/
printf("\n");
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
printf("%-3d",b[i][j]);
}
printf("\n");
}
getchar();
return 0;
}