九度OJ 题目1470:调整方阵

题目1470:调整方阵

时间限制:1 秒

内存限制:128 兆

特殊判题:

提交:11

解决:6

题目描述:

输入一个N(N<=10)阶方阵,按照如下方式调整方阵:
1.将第一列中最大数所在的行与第一行对调。
2.将第二列中从第二行到第N行最大数所在的行与第二行对调。
依此类推...
N-1.将第N-1列中从第N-1行到第N行最大数所在的行与第N-1行对调。
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
来源:
2011年西北工业大学计算机研究生机试真题

/********************************* 
*   日期:2013-2-25
*   作者:SJF0115 
*   题号: 九度OJ 题目1470:调整方阵
*   来源:http://ac.jobdu.com/problem.php?pid=1470
*   结果:AC 
*   来源:2011年西北工业大学计算机研究生机试真题
*   总结: 
**********************************/ 
#include<stdio.h>
#include<limits.h>
#include<string.h>
int Matrix[11][11];

int main(){
	int i,j,N,Max,MaxIndex;
	while(scanf("%d",&N) != EOF){
		//输入
		for(i = 0;i < N;i++){
			for(j = 0;j < N;j++){
				scanf("%d",&Matrix[i][j]);
			}
		}
		for(j = 0;j < N;j++){
			//找每列的最大数及其下标
			Max = INT_MIN;
			for(i = j;i < N;i++){
				if(Matrix[i][j] > Max){
					Max = Matrix[i][j];
					MaxIndex = i;
				}
			}
			//对换
			int temp;
			if(MaxIndex != j){
				for(i = 0;i < N;i++){
					temp = Matrix[j][i];
					Matrix[j][i] = Matrix[MaxIndex][i];
					Matrix[MaxIndex][i] = temp;
				}
			}
		}
		//输出
		for(i = 0;i < N;i++){
			for(j = 0;j < N-1;j++){
				printf("%d ",Matrix[i][j]);
			}
			printf("%d\n",Matrix[i][j]);
		}
	}
	return 0;
}



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值