1. 程式人生 > >1120: 最值交換

1120: 最值交換

交換 ini max 元素 最小 函數 min 有一個 stdio.h

題目描述

有一個長度為n的整數序列。請寫一個程序,先把序列中的最小值與第一個數交換,再把最大值與最後一個數交換。輸出轉換好的序列。 分別編寫兩個函數MinIndex()和MaxIndex()來計算最小值下標和最大值下標。

intMinIndex(int a[], int n); //函數返回數組a中最小元素的下標

intMaxIndex(int a[], int n); //函數返回數組a中最大元素的下標

數組元素的輸出調用函數PrintArr()。

輸入

輸入包括兩行。
第一行為正整數n(1≤n≤10)。
第二行為n個正整數組成的序列,保證沒有重復元素。

輸出

輸出轉換好的序列。數據之間用空格隔開。

樣例輸入

5
5 4 1 2 3

樣例輸出

1 4 3 2 5
#include<stdio.h>

int main()

{

    int n,i,j=0,k=0,a[10003],c,d;

    scanf("%d",&n);

    for(i=0;i<n;i++)

       scanf("%d",&a[i]);

    int max=a[0],min=a[0];

    for(i=0;i<n;i++)

    {

        if(a[i]>max)

        {

            max
=a[i]; j=i; } } c=a[n-1]; a[n-1]=a[j]; a[j]=c; for(i=0;i<n;i++) { if(a[i]<min) { min=a[i]; k=i; } } d=a[0]; a[0]=a[k]; a[k]=d; for(i=0;i<n;i++) printf("%d%c
",a[i],i==n-1?\n: ); return 0; }

1120: 最值交換