编写一个矩阵转置的函数,矩阵的维数在程序中由用户输入。
解:
#include <iostream.h> void move (int *matrix ,int n) { int i, j, k; for(i=0; i<n; i++) for (j=0; j<i; j++) { k = *(matrix + i*n + j); *(matrix + i*n + j) = *(matrix + j*n + i); *(matrix + j*n + i) = k; } } void main() { int n, i, j; int *p; cout << "请输入矩阵的维数:"; cin >> n; p = new int[n*n]; cout << "输入矩阵的元素" << endl; for(i=0; i<n; i++) for (j=0; j<n; j++) { cout << "第" << i+1 << "行第" << j+1 << "个元素为:"; cin >> p[i*n + j]; } cout << "输入的矩阵的为:" << endl; for(i=0; i<n; i++) { for (j=0; j<n; j++) cout << p[i*n + j] << " "; cout << endl; } move(p, n); cout << "转置后的矩阵的为:" << endl; for(i=0; i<n; i++) { for (j=0; j<n; j++) cout << p[i*n + j] << " "; cout << endl; } }
程序运行输出:
请输入矩阵的维数:3
输入矩阵的元素
1 行第 1 个元素为:1
1 行第 2 个元素为:2
1 行第 3 个元素为:3
2 行第 1 个元素为:4
2 行第 2 个元素为:5
2 行第 3 个元素为:6
3 行第 1 个元素为:7
3 行第 2 个元素为:8
3 行第 3 个元素为:9
输入的矩阵的为:
1 2 3
4 5 6
7 8 9
转置后的矩阵的为:
1 4 7
2 5 8
3 6 9
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
解:
程序运行输出:
请输入矩阵的维数:3
输入矩阵的元素
1 行第 1 个元素为:1
1 行第 2 个元素为:2
1 行第 3 个元素为:3
2 行第 1 个元素为:4
2 行第 2 个元素为:5
2 行第 3 个元素为:6
3 行第 1 个元素为:7
3 行第 2 个元素为:8
3 行第 3 个元素为:9
输入的矩阵的为:
1 2 3
4 5 6
7 8 9
转置后的矩阵的为:
1 4 7
2 5 8
3 6 9