题目描述
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。
输入
10个整数
输出
整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)
样例输入
2 1 3 4 5 6 7 8 10 9
样例输出
1 2 3 4 5 6 7 8 9 10
进行交换时,若最大值在a[0],最小值在a[9],两次交换相当于不变。故在进行其中一个交换时,要考虑,另一个的位置会不会随着变化 。
例如我们把最小值的下标保存在mini,最大值的下标保存在maxi;
当a[0]和a[mini]交换前,判断如果maxi==0,则交换后maxi ==mini;
#include
#include
#include
#include
using namespace std;
int main()
{
int a[10];
for(int i=0; i<10; i++)
scanf("%d",&a[i]);
int maxn = a[0],maxi=0, minn = a[0],mini=0;
for(int i=0; i<10; i++)
{
if(maxn
{
maxn = a[i];
maxi = i;
}
if(minn>a[i])
{
minn = a[i];
mini = i;
}
}
int t;//换最小值,交换过程中最大值的位置可能发生移动
t = a[0];
a[0] = a[mini];
a[mini] = t;
if(maxi==0)
maxi = mini;
t = a[9];
a[9] = a[maxi];
a[maxi] = t;
for(int i=0; i<10; i++)
printf("%d ", a[i]);
}
标签:mini,10,int,交换,C语言,queue,6.5,maxi,include
来源: https://blog.csdn.net/xunalove/article/details/88371629