谭浩强C++课后习题24——对换数字
题目描述:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。编写3个函数:1.输入10个数;2.进行处理;3.输出10个数。
算法思路:先遍历一遍数组,把最大值得下标maxi和最小值下标mini找到,分两种情况,一种是最大的数正好位于第一个数,则最小的数与第一个数交换后,最大的数被换到最小的数原本的位置上,再将其与最后一个数交换位置;一种是最大的数不位于第一个数,则直接将最小的数与第一个数交换,最大的数与最后的数交换。
#include<iostream>
using namespace std;
int main() {
int num[10];
int mini = 0, maxi = 0;
cout << "输入数组:";
for (int i = 0;i < 10;i++)
cin >> num[i];
for (int i = 0;i < 10;i++) {
if (num[i] < num[mini])
mini = i;
if (num[i] > num[maxi])
maxi = i;
}
if (maxi == 0) {
int temp;
temp = num[mini];
num[mini] = num[0];
num[0] = temp;
temp = num[mini];
num[mini] = num[9];
num[9] = temp;
}
else {
int temp;
temp = num[mini];
num[mini] = num[0];
num[0] = temp;
temp = num[maxi];
num[maxi] = num[9];
num[9] = temp;
}
cout << "新数组:";
for (int i = 0;i < 10;i++)
cout << num[i] << " ";
return 0;
}
运行结果: