九度oj 题目1053:互换最大最小数

本文介绍了一种简单的算法,该算法接收一组数值输入,在这些数值中找到最大和最小值,并将这两个值的位置进行互换。通过使用C++标准库中的vector容器和基本的循环逻辑实现了这一功能。

题目1053:互换最大最小数

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:7538

解决:3049

题目描述:

输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。

输入:

测试数据有多组,输入n(1<=n<=20),接着输入n个数。

输出:

对于每组输入,输出交换后的结果。

样例输入:
2
1 3
样例输出:
3 1
 1 #include <iostream>
 2 #include <algorithm>
 3 #include <vector>
 4 using namespace std;
 5 
 6 int main(){
 7     int n, temp, i;
 8     vector<int> v;
 9     while(cin >> n){
10         v.clear();
11         for(i = 0; i < n; i++){
12             cin >> temp;
13             v.push_back(temp);
14         }
15         int max = v[0], min = v[0], max_n = 0, min_n = 0;
16         for(i = 1; i < n; i++){
17             if(v[i] > max){
18                 max = v[i];
19                 max_n = i;
20             }
21             if(v[i] < min){
22                 min_n = i;
23                 min = v[i];
24             }
25         }
26         swap(v[min_n], v[max_n]);
27         cout << v[0];
28         for(i = 1; i < n; i++){
29             cout << " " << v[i];
30         }
31         cout << endl;
32     }
33     return 0;
34 }

 

 

转载于:https://www.cnblogs.com/qinduanyinghua/p/6440419.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值