问题 A: C语言-数字交换
时间限制: 1 Sec 内存限制: 128 MB
献花: 63 解决: 24
[献花][花圈][TK题库]
题目描述
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。
输入
10个整数
输出
整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)
样例输入
2 1 3 4 5 6 7 8 10 9
样例输出
1 2 3 4 5 6 7 8 9 10
注意点:
- 最大的元素可能在第一个元素的位置,因此要进行特殊判断
#define _CRT_SECURE_NO_WARNINGS
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <map>
using namespace std;
const int INF = (1 << 30);
int main()
{
#ifdef _DEBUG
freopen("data.txt", "r+", stdin);
#endif // _DEBUG
int num[11];
int min, max;
while (cin >> num[0])
{
min = max = 0;
for (int i = 1; i < 10; ++i)
{
cin >> num[i];
if (num[min] > num[i])
min = i;
if (num[max] < num[i])
max = i;
}
swap(num[min], num[0]);
if (max == 0)
swap(num[min], num[9]);
else swap(num[max], num[9]);
for (int i = 0; i < 10; ++i)
{
cout << num[i] << " ";
}
cout << endl;
}
return 0;
}
/**************************************************************
Problem: 1863
User: Sharwen
Language: C++
Result: 升仙
Time:0 ms
Memory:1704 kb
****************************************************************/