1177: 按要求排序(指標專題)
時間限制: 1 sec 記憶體限制: 128 mb
提交: 2433 解決: 953
[狀態] [討論版] [提交] [命題人:admin]
題目描述
輸入n和n個整數,然後按要求排序,若輸入1,請輸出公升序排序序列;若輸入2,請輸出降序排序序列,若輸入3,請輸出按絕對值公升序排序序列。要求程式結構如下,請完善程式。
void sort(int a, int n, int (*cmp)());
int cmpasc(int x, int y); /按公升序要求判斷兩元素是否逆序/
int cmpdec(int x, int y); /按降序要求判斷兩元素是否逆序/
int cmpabsasc(int x, int y); /按絕對值公升序要求判斷兩元素是否逆序/
int main(void)
/輸出排序後的陣列/
void sort(int a, int n, int (*cmp)())
輸入輸入第一行是乙個正整數n;
輸入第二行是n個整數;
輸入第三行是乙個1~3的整數slt,表示使用者的排序要求。
輸出輸出n個整數。若使用者的排序選擇是1,則輸出公升序排序後的n個整數;若使用者的排序選擇是2,則輸出降序排序後的n個整數;若使用者的排序選擇是3,則輸出按絕對值公升序排序後的n個整數;輸出佔一行,資料之間用空格隔開。
樣例輸入 copy
52 -3 1 5 4
2樣例輸出 copy
5 4 2 1 -3
提示請採用穩定的排序演算法
#include
#include
void
sort
(int a,
int n,
int(
*cmp)()
);intcmpasc
(int x,
int y)
;int
cmpdsc
(int x,
int y)
;int
cmpabsasc
(int x,
int y)
;int
main
(void
)for
(i=0
;i)return0;
}void
sort
(int a,
int n,
int(
*cmp)()
)}if(flag==0)
break;}
}int
cmpasc
(int x,
int y)
intcmpdsc
(int x,
int y)
intcmpabsasc
(int x,
int y)
1177 按要求排序(指標專題)
題目描述 輸入n和n個整數,然後按要求排序,若輸入1,請輸出公升序排序序列 若輸入2,請輸出降序排序序列,若輸入3,請輸出按絕對值公升序排序序列。要求程式結構如下,請完善程式。void sort int a,int n,int cmp int cmpasc int x,int y 按公升序要求判斷兩...
zzulioj 1177 按要求排序(指標專題)
輸入n和n個整數,然後按要求排序,若輸入1,請輸出公升序排序序列 若輸入2,請輸出降序排序序列,若輸入3,請輸出按絕對值公升序排序序列。要求程式結構如下,請完善程式。void sort int a,int n,int cmp int cmpasc int x,int y 按公升序要求判斷兩元素是否逆...
ZZULIOJ 1177 按要求排序(指標專題)
題目描述 輸入n和n個整數,然後按要求排序,若輸入1,請輸出公升序排序序列 若輸入2,請輸出降序排序序列,若輸入3,請輸出按絕對值公升序排序序列。要求程式結構如下,請完善程式。void sort int a,int n,int cmp int cmpasc int x,int y 按公升序要求判斷兩...