天天看點

ACMNO.37 C語言-數字交換 輸入10個整數,将其中最小的數與第一個數對換,然後把最大的數與最後一個數對換。寫三個函數; ①輸入10個數;②進行處理;③輸出10個數。

題目描述

輸入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語言       

題目截圖:

ACMNO.37 C語言-數字交換 輸入10個整數,将其中最小的數與第一個數對換,然後把最大的數與最後一個數對換。寫三個函數; ①輸入10個數;②進行處理;③輸出10個數。

思路:

坑,太坑啦。最大的數在第一個位置,最小的數在最後這樣就很難排序啦!
最後,多番嘗試。決定先解決最小的數放在第一位,在解決最大數放在最後!
詳細的看代碼吧,應該挺簡單的!      

代碼:

#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);

}      

代碼截圖:

ACMNO.37 C語言-數字交換 輸入10個整數,将其中最小的數與第一個數對換,然後把最大的數與最後一個數對換。寫三個函數; ①輸入10個數;②進行處理;③輸出10個數。

執行結果:

ACMNO.37 C語言-數字交換 輸入10個整數,将其中最小的數與第一個數對換,然後把最大的數與最後一個數對換。寫三個函數; ①輸入10個數;②進行處理;③輸出10個數。