1120: 最值交換
阿新 • • 發佈:2018-12-03
交換 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: 最值交換