1993: C语言实验——最值

 

1993: C语言实验——最值

Time Limit: 1 Sec  Memory Limit: 64 MB
Submit: 1541  Solved: 727
[Submit][Status][Web Board]

Description

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

Input

输入包括两行。 第一行为正整数n(1≤n≤10)。 第二行为n个正整数组成的序列。

Output

输出转换好的序列。数据之间用空格隔开。

Sample Input

5
2 1 5 4 3


Sample Output

1 2 3 4 5

HINT

 

Source

本题应注意不是排序,而只是将最小值与第一个数交换,最大值与最后一个数交换。

找到最大值最小值对应数组中的下标,然后通过下标来解决此问题。

 

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,n,a[10];
    int k,max,min;
    scanf("%d",&n);
    for(i=0; i<n; i++)
        scanf("%d",&a[i]);
    min=max=a[0];
    k=0;
    for(i=0; i<n; i++)
    {
        if(a[i]<min)
        {
            min=a[i];
            k=i;
        }
    }
    a[k]=a[0];
    a[0]=min;
    for(i=1; i<n; i++)
    {
    if(a[i]>max)
    {
        max=a[i];
        k=i;
    }
}

    a[k]=a[n-1];
    a[n-1]=max;
    for(i=0; i<n; i++)
        printf("%d ",a[i]);
    printf("\n");
    return 0;
}

  

 

posted @ 2018-02-07 17:32  青衫客36  阅读(431)  评论(0编辑  收藏  举报