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++上机练习:调整方阵的主要内容,如果未能解决你的问题,请参考以下文章