題目描述
輸入10個整數,將其中最小的數與第乙個數對換,把最大的數與最後乙個數對換。寫三個函式; ①輸入10個數;②進行處理;③輸出10個數。
輸入10個整數
輸出整理後的十個數,每個數後跟乙個空格(注意最後乙個數後也有空格)
樣例輸入 copy
2 1 3 4 5 6 7 8 10 9
樣例輸出 copy
1 2 3 4 5 6 7 8 9 10
需要考慮比較特殊的情況,在交換的過程中,可能存在乙個元素發生了兩次交換。如果第乙個元素是最大的,那麼找出乙個最小的元素與第乙個元素交換後,交換後的這個元素(不是第乙個元素)就成為了最大的元素,它需要與最後乙個元素交換,因此這個位置的這個元素就要交換兩次,先和第乙個元素交換,再和最後乙個元素交換。如10 ,1,2,3,4,5,6,7,8,9。第乙個位置上的元素是最大的,10與1交換後,10再與9交換。如果最後乙個元素是最小的,也存在有乙個位置上的元素需要交換兩次。比如2,3,4,5,6,7,8,9,10,1。最後乙個元素是最小的,1先和2交換,2再和10交換。
法一:
#include
#include
using
namespace std;
queue<
int>a;
vector<
int>b;
void
input()
}void
work()
void
output()
else
}else
if(a.
front()
==y&&f2==
0&&i!=0)
else
}else
if(i==0)
else
if(i==9)
else
} cout<}int
main()
法二:將最小的數與第乙個數對換和最大的數與最後乙個數對換,這兩次交換分兩次進行,這樣互不干擾。
#include
#include
using
namespace std;
int a[11]
;int
main()
} t=a[9]
; a[9]
=a[x1]
; a[x1]
=t;for
(i=0
; i<
10; i++)}
t=a[0]
; a[0]
=a[x2]
; a[x2]
=t;for
(i=0
; i<
10; i++
)printf
("%d "
,a[i]);
return0;
}
演算法筆記 問題 A C語言 數字交換
題目描述 輸入10個整數,將其中最小的數與第乙個數對換,把最大的數與最後乙個數對換。寫三個函式 輸入10個數 進行處理 輸出10個數。輸入10個整數 輸出整理後的十個數,每個數後跟乙個空格 注意最後乙個數後也有空格 樣例輸入 copy 2 1 3 4 5 6 7 8 10 9樣例輸出 copy 1 ...
問題 A C語言11 1
完成乙個對候選人得票的統計程式。假設有3個候選人,名字分別為li,zhang和fun。使用結構體儲存每乙個候選人的名字和得票數。記錄每一張選票的得票人名,輸出每個候選人最終的得票數。結構體可以定義成如下的格式 struct person leader 3 第一行有乙個整數n,表示以下有n張選票資訊將...
問題A C語言11 1
完成乙個對候選人得票的統計程式。假設有3個候選人,名字分別為li,zhang,fun。使用結構體儲存每乙個候選人的名字和得票數。記錄每乙個選票的得票人名,輸出每個候選人最終的得票數。結構體可以定義成如下的格式 structleader 3 程式如下 include includestruct per...