c 語言 最值交換

2021-10-03 17:19:57 字數 1509 閱讀 6656

/*****

題目描述

有乙個長度為n的整數序列。請寫乙個程式,先把序列中的最小值與第乙個數交換,再把最大值與最後乙個數交換。輸出轉換好的序列。 分別編寫兩個函式minindex()和maxindex()來計算最小值下標和最大值下標。

intminindex(int a, int n); //函式返回陣列a中最小元素的下標

intmaxindex(int a, int n); //函式返回陣列a中最大元素的下標

陣列元素的輸出呼叫函式printarr()。

輸入輸入包括兩行。

第一行為正整數n(1≤n≤10)。

第二行為n個正整數組成的序列,保證沒有重複元素。

輸出輸出轉換好的序列。資料之間用空格隔開。

樣例輸入 copy

55 4 1 2 3

樣例輸出 copy

1 4 3 2 5

*****/

!!!!!這裡有一點,在進行最小值交換以後,相應的最大值的下標可能就改變了,所以返回下標的函式不能直接是上下句的關係,應該是 先判斷在交換再判斷在交換。

!!!!!看著程式很長 其實一點都不複雜

#include

#include

void change (

int a,

int c,

int b)

;//交換陣列中兩個資料

void

printarr

(int a,

int n)

;//列印輸出陣列

void

inputarr

(int a,

int n)

;//輸入陣列

intminindex

(int a,

int n)

;//函式返回陣列a中最小元素的下標

intmaxindex

(int a,

int n)

;//函式返回陣列a中最大元素的下標

intmain()

intminindex

(int a,

int n)

//函式返回陣列a中最小元素的下標}if

(flag ==1)

return index;

else

return0;

}int

maxindex

(int a,

int n)

//函式返回陣列a中最大元素的下標}if

(flag ==1)

return index;

else

return0;

}void

printarr

(int a,

int n)

}void

inputarr

(int a,

int n)

}void

change

(int a,

int c,

int b)

1120 最值交換

有乙個長度為n的整數序列。請寫乙個程式,先把序列中的最小值與第乙個數交換,再把最大值與最後乙個數交換。輸出轉換好的序列。分別編寫兩個函式minindex 和maxindex 來計算最小值下標和最大值下標。int minindex int a,int n 函式返回陣列a中最小元素的下標 int max...

1457 最值交換

有乙個長度為n的整數序列。請寫乙個程式,先把序列中的最小值與第乙個數交換,再把最大值與最後乙個數交換。輸出轉換好的序列。分別編寫兩個函式minindex 和maxindex 來計算最小值下標和最大值下標。int minindex int a,int n 函式返回陣列a中最小元素的下標 int max...

最值交換 2

4.20分 從鍵盤輸入10個整數,用函式程式設計實現計算其最大值和最小值,並互換它們所在陣列中的位置。要求按如下函式原型編寫程式 void readdata int a,int n void printdata int a,int n void maxminexchang int a,int n 輸...