C++上机练习:调整方阵

Posted Abro.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++上机练习:调整方阵相关的知识,希望对你有一定的参考价值。

题目描述:

输入一个 N N N N < = 10 N<=10 N<=10)阶方阵,按照如下方式调整方阵:

1.将第一列中最大数所在的行与第一行对调。
2.将第二列中从第二行到第 N 行最大数所在的行与第二行对调。依此类推... N-1.将第N-1列中从第N-1行到第N行最大数所在的行与第N-1行对调。N.输出这个方阵

输入描述:

包含多组测试数据,每组测试数据第一行为一个整数 N N N ,表示方阵的阶数。接下来输入这个 N N N阶方阵。


输出描述:

输出调整后的 N N N阶方阵

示例:

输入:

4
3 6 8 7
6 7 5 3
8 6 5 3
9 8 7 2

输出:

9 8 7 2
6 7 5 3
3 6 8 7
8 6 5 3

源码分析:

#include<iostream>
using namespace std;
#define max_len 11
int a[max_len][max_len];

//交换两个数组的方法 
void transfer(int a[max_len][max_len],int n,int i,int j){
	for(int l=0;l<n;l++){
		int tmp = a[i][l];
		a[i][l] = a[j][l];
		a[j][l] = tmp;
	}
}
	
	//主方法
	int main(void){
		int n;
		int b[max_len];
		cout << "请输入方阵的阶数:" << endl; 
		while(cin >> n){
			cout << "请输入原方阵:" << endl;
			for(int i=0;i<n;i++)
				for(int j=0;j<n;j++){
					int x;
					cin >> x;
					a[i][j] = x;
				}
				
			//循环遍历输出调整后的方阵 
			for(int i=0;i<n;i++){
				int max=i;
				for(int j=i;j<n;j++){
					if(a[max][i]<a[j][i])
						max = j;//本列中最大数所在行 
				}
				transfer(a,n,i,max);//调用方阵中的方法 
			}
			
			cout << "调整后的方阵为:" << endl;
			for(int i=0;i<n;i++){
				for(int j=0;j<n;j++)
					cout << a[i][j] << ' ';
				cout << endl;
			}
		}
		return 0;
}

运行结果:

在这里插入图片描述

每日一练,感谢来访;-)
在这里插入图片描述

以上是关于C++上机练习:调整方阵的主要内容,如果未能解决你的问题,请参考以下文章

C++上机练习:关门人和开门人

《程序设计语言综合设计》第六周上机练习

A1-2017级算法上机第一次练习赛 I jhljx学位运算

上机练习七

C++编程试题:计算机学科-夏令营上机考试题解

C++编程试题:计算机学科丨编程夏令营上机考试题解