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 <<
问题: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