Codeup——600 | 问题 A: C语言-数字交换

题目描述

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。

输入

10个整数

输出

整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)

样例输入

2 1 3 4 5 6 7 8 10 9

样例输出

1 2 3 4 5 6 7 8 9 10

思路:其实这个题没有必要用queue,不过需要注意的是,第一次进行交换后数组发生了改变,应当在第一次交换完之后再寻找最大的数。

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;

int main()
{
    
    
	int i,a[10],max,min;
	while(scanf("%d",&a[0])!=EOF){
    
    
		min=a[0];
		int index_min=0;
		for(i=1;i<10;i++){
    
    
			cin >>a[i];	
			if(a[i]<min){
    
    
				index_min=i;
				min=a[i];
			}
		}
		swap(a[0],a[index_min]);
		int index_max=0;
		max=a[0];
		for(i=0;i<10;i++)
			if(a[i]>max){
    
    
				max=a[i];
				index_max=i;
			}
		swap(a[9],a[index_max]);
		for(i=0;i<10;i++)
			cout <<a[i]<<" ";
		cout <<endl;
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_44888152/article/details/107007785