AC日记

 

Problem Description

有一个长度为n的整数序列,其中最大值和最小值不会出现在序列的第一和最后一个位置。
请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。

Input

输入包括两行。
第一行为正整数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 !!!

原文地址:https://www.cnblogs.com/Jie-Fei/p/8296966.html