C语言实验——最值
Time Limit: 1000 ms
Memory Limit: 65536 KiB
Problem Description
有一个长度为n的整数序列,其中最大值和最小值不会出现在序列的第一和最后一个位置。
请写一个程序, 把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。
请写一个程序, 把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。
Input
输入包括两行。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列。
Output
输出转换好的序列。数据之间用空格隔开。
Sample Input
5 2 1 5 4 3
Sample Output
1 2 3 4 5
Hint
Source
#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;
cin>>n;
int a[10];
int max,min;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
max=a[0],min=a[0];
int x1,x2;
for(int i=0;i<n;i++){
if(a[i]>max){
max=a[i];
x1=i;
}
if(a[i]<min){
min=a[i];
x2=i;
}
}
int t1=a[0],t2=a[n-1];
a[0]=min;
a[n-1]=max;
a[x1]=t2;
a[x2]=t1;
for(int i=0;i<n;i++){
if(i==n-1)
printf("%d\n",a[i]);
else
printf("%d ",a[i]);
}
return 0;
}