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 !!!

浙公网安备 33010602011771号