問題 A C語言 數字交換

2021-10-02 14:02:22 字數 1454 閱讀 9263

題目描述

輸入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...