调换数组最大最小
調換數組最大最小
作者: Turbo 時間限制: 1S 章節: 一維數組
問題描述 :
輸入若干整數,用函數編程將其中最大數與最小數的位置交換,然后輸出交換位置后的數組內容。
輸入說明 :
分兩行輸入,第一行為一個非負整數n,表示將要輸入的整數個數。第二行為n個整數,整數之間以一個空格分隔。2<=n<=40。
輸出說明 :
輸出n個整數,表示交換位置后的數組內容,整數之間以一個空格分隔。行首與行尾無多余空格。
輸入范例 :
3
40 45 50
輸出范例 :
50 45 40
#include<stdio.h> int main(){int n;scanf("%d",&n);int i;int a[40],b[1];//開辟另外一個數組空間,用于存儲待交換的值for(i=0;i<n;i++){scanf("%d",&a[i]);}int max=a[0],min=a[0];int j,p=0,q=0;//給p\q賦初值,否則可能報錯for(j=0;j<n;j++){if(a[j]>max){max=a[j];p=j;}if(a[j]<min){min=a[j];q=j;}}b[0]=a[p];a[p]=a[q];a[q]=b[0];//交換值int k;for(k=0;k<n-1;k++)printf("%d ",a[k]);//確保結尾輸出沒有空格printf("%d",a[n-1]);return 0; }總結