实验7-1-10 交换最小值和最大值 (15 point(s))
本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
注意:题目保证最大和最小值都是唯一的。
输入格式:
输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。
输出格式:
在一行中顺序输出交换后的序列,每个整数后跟一个空格。
输入样例:
5
8 2 5 1 4
结尾无空行
输出样例:
1 2 5 4 8
结尾无空行
参考答案:
#include<stdio.h>
//先将输入的一系列整数中的最小值与第一个数交换,
//然后将最大值与最后一个数交换,最后输出交换后的序列
int main()
{
int n,list1[10],min,max,count=0,min_count=0,max_count=0;
//输入在第一行中给出一个正整数N(≤10),
//第二行给出N个整数,数字间以空格分隔。
scanf("%d",&n);
scanf("%d",&list1[count]);
min=max=list1[count];
count++;
for(--n;n--;count++)
{
scanf("%d",&list1[count]);
if(min>list1[count])
{
min=list1[count];
min_count=count;
}
if(max<list1[count])
{
max=list1[count];
max_count=count;
}
}
list1[min_count]=list1[0];
list1[0]=min;
if(0==max_count) max_count=min_count;
list1[max_count]=list1[--count];
list1[count++]=max;
n++;
while(count--)
{
printf("%d ",list1[n]);
n++;
}
}