AC日记 - - - 16——最值
Problem Description
有一个长度为n的整数序列,其中最大值和最小值不会出现在序列的第一和最后一个位置。
请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。
请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。
Input
输入包括两行。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列。
Output
输出转换好的序列。数据之间用空格隔开。
Example Input
5 2 1 5 4 3
Example Output
1 2 3 4 5
Hint
#include <stdio.h> #include <stdlib.h> int main() { int n, i, max=0, min=0, temp; int *arr; scanf("%d", &n); arr=malloc(sizeof(int)*n); for(i=0; i<n; i++) scanf("%d", &arr[i]); min=arr[0]; for(i=0; i<n; i++) { if(arr[i]>max) max=arr[i]; if(arr[i]<min) min=arr[i]; }//找出最大值和最小值。 for(i=0;i<n;i++) { if(arr[i]==max) { temp=arr[n-1]; arr[n-1]=arr[i]; arr[i]=temp; } if(arr[i]==min) { temp=arr[0]; arr[0]=arr[i]; arr[i]=temp; } }//找出最大值和最小值的下标,并将其与首尾位置交换。 for(i=0;i<n;i++) { if(i==0) printf("%d", arr[i]); else printf(" %d", arr[i]); } }
作者:7oDo
仅供参考,请勿抄袭。
Hang Hang Hang !!!