c++转置问题!!!

来源:百度知道 编辑:UC知道 时间:2024/05/10 17:05:17
下面是二维数组的的转置。但是只转了一部分,郁闷~~~~请高手看看~~~~
问题:1.编写一个程序用于计算3*3整数矩阵的转置。要求:
1)用二维数组保存矩阵;
2)定义转置函数实现转置功能;
3)注意使用不同的参数传递形式,实现函数调用。
代码:
#include <iostream> using namespace std;
int w[3][3];
void move (int matrix[3][3])
{
int i, j;
for(i=0; i<3; i++)
for (j=0; j<i; j++)
{

w[i][j] = matrix[j][i];

}
}

int main()
{
int i, j;
int data[3][3];
cout << "输入矩阵的元素" << endl;
for(i=0; i<3; i++)
for (j=0; j<3; j++)
{
cout << "第" << i+1 << "行第" << j+1
<<"个元素为:";
cin >> data[i][j];
}
cout << "输入的矩阵的为:" << endl;
for(i=0; i<3; i++)
{
for (j=0; j<3; j++)
cout << data[i][j] << " ";
cout << endl;
}
move(data);
cout <<

函数move中的循环如下:
for(i=0; i<3; i++)
for (j=0; j<i; j++)
{

w[i][j] = matrix[j][i];

}
这只是对w的下三角进行了赋值,值是matrix的上三角。不包括主对角线。

可把内层的循环条件:
j<i
改为:
j<3

#include <iostream> using namespace std;
//int w[3][3];
void move (int matrix[3][3])
{
int i, j;
for(i=0; i<3; i++)
for (j=0; j<i; j++)
{

matrix[i][j] = matrix[j][i];

}
}

int main()
{
int i, j;
int data[3][3];
cout << "输入矩阵的元素" << endl;
for(i=0; i<3; i++)
for (j=0; j<3; j++)
{
cout << "第" << i+1 << "行第" << j+1
<<"个元素为:";
cin >> data[i][j];
}
cout << "输入的矩阵的为:" << endl;
for(i=0; i<3; i++)
{
for (j=0; j<3; j++)
cout << data[i][j] << &quo