ACMNO.37 C語言-數字交換 輸入10個整數,將其中最小的數與第一個數對換,然後把最大的數與最後一個數對換。寫三個函式; ①輸入10個數;②進行處理;③輸出10個數。
阿新 • • 發佈:2018-12-28
題目描述
輸入10個整數,將其中最小的數與第一個數對換,然後把最大的數與最後一個數對換。
寫三個函式; ①輸入10個數;②進行處理;③輸出10個數。
輸入
10個整數
輸出
整理後的十個數,每個數後跟一個空格(注意最後一個數後也有空格)
樣例輸入
2 1 3 4 5 6 7 8 10 9
樣例輸出
1 2 3 4 5 6 7 8 9 10
來源/分類
C語言
題目截圖:
思路:
坑,太坑啦。最大的數在第一個位置,最小的數在最後這樣就很難排序啦! 最後,多番嘗試。決定先解決最小的數放在第一位,在解決最大數放在最後! 詳細的看程式碼吧,應該挺簡單的!
程式碼:
#include <iostream> using namespace std; int a[10]={0};int i; void get(int a[10]) { for(i=0;i<10;i++) cin>>a[i]; } void change(int a[10])//應該一次一次解決! { int max,min,temp;min=a[0];max=a[0];int t=0; for(i=0;i<10;i++) { if(min>=a[i]) { min=a[i]; t=i; } } temp=a[t]; a[t]=a[0]; a[0]=temp; for(i=0;i<10;i++) { if(max<=a[i]) { max=a[i]; t=i; } } temp=a[t]; a[t]=a[9]; a[9]=temp; } void out(int a[10]) { for(i=0;i<10;i++) cout<<a[i]<<" "; } int main() { get(a); change(a); out(a); }
程式碼截圖:
執行結果:
OJ結果: