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

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

題目截圖:
在這裡插入圖片描述
思路:

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

程式碼:

#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結果:
在這裡插入圖片描述