3行3列数组的转置的c语言程序怎么编写?

如题所述

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 3 //定义测试矩阵的大小

// 矩阵转置
void matrix_transpose(int a[N][N], int n) {
int i,j;
int e;

for(i=0; i<n; i++) {
for(j=0; j<i; j++) {
e = a[i][j];
a[i][j] = a[j][i];
a[j][i] = e;
}
}
}

//打印矩阵数据
void matrix_print(int a[N][N], int n) {
int i,j;
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
printf("%3d ", a[i][j]);
}
printf("\n");
}
}

int main(void)
{
int a[N][N] = {0};
int i,j;
int e;

// 给测试矩阵赋初值
srand(time(0));
for(i=0; i<N; i++) {
for(j=0; j<N; j++) {
while((e = rand())<0 || e>999);
a[i][j] = e;
}
}

// 打印矩阵原始数据
printf("矩阵原始数据是:\n");
matrix_print(a, N);

// 矩阵转置,并打印转置之后的矩阵数据
matrix_transpose(a, N);
printf("\n矩阵转置之后,数据是:\n");
matrix_print(a, N);

getchar();
}
温馨提示:答案为网友推荐,仅供参考
相似回答