林惜城


私信TA

用户名:reminder

访问量:31323

签 名:

等  级
排  名 91
经  验 9074
参赛次数 0
文章发表 95
年  龄 0
在职情况 学生
学  校 西安电子科技大学
专  业

  自我简介:

哈姆


解题思路:

如何传二维数组做参数?经典回顾:https://blog.dotcpp.com/a/84531

这题的本质和那一题没区别。


注意事项:

打印的时候要注意换行。


参考代码:

#include <iostream>

using namespace std;

const int mSize = 3;
void transMatrix(int (*matrix)[mSize], int len); //矩阵做转置
int main() {
	int matrix[mSize][mSize] = { 0 };
	for(int i = 0; i < mSize; i++) {
		for(int j = 0; j < mSize; j++) {
			cin >> matrix[i][j]; //读输入
		}
	}
	transMatrix(matrix, 3);
	for(int i = 0; i < mSize; i++) {
		for(int j = 0; j < mSize; j++) {
			if(j == mSize - 1) {
				cout << matrix[i][j] << endl; //第三个元素换行
			} else {
				cout << matrix[i][j] << " ";
			}
		}
	}
	return 0;
}
//明明是长宽一致的矩阵,为什么还要分成mSize和len呢?
void transMatrix(int (*matrix)[mSize], int len) {
	if(mSize != len) {
		cerr << "can't be transposed!" << endl;
	}
	for(int i = 0; i < len; i++) {
		for(int j = i; j < mSize; j++) { //这里写成j < len结果也是一样的,但不符合实际了
			swap(matrix[i][j], matrix[j][i]);
		}
	}
}


 

0.0分

1 人评分

  评论区

多此一舉
2022-06-19 20:09:41
  • «
  • 1
  • »