首页 > 试题广场 >

编写一个矩阵转置的函数,矩阵的维数在程序中由用户输入。

[问答题]

编写一个矩阵转置的函数,矩阵的维数在程序中由用户输入。

推荐

解:

#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



发表于 2018-04-18 20:46:20 回复(0)