輸入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個整數;輸出佔一行,資料之間用空格隔開。
52-
3154
2
542
1-3
請採用穩定的排序演算法
#include
#include
void
sort
(int a,
int n,
int(
*cmp)()
);intcmpasc
(int x,
int y)
;/*按公升序要求判斷兩元素是否逆序*/
intcmpdec
(int x,
int y)
;/*按降序要求判斷兩元素是否逆序*/
intcmpabsasc
(int x,
int y)
;/*按絕對值公升序要求判斷兩元素是否逆序*/
intmain()
/*讀入使用者的選擇,存入slt; */
scanf
("%d"
,&slt)
;switch
(slt)
/*輸出排序後的陣列*/
for(i=
0;i)return0;
}void
sort
(int a,
int n,
int(
*cmp)()
)}}int
cmpasc
(int x,
int y)
intcmpdec
(int x,
int y)
intcmpabsasc
(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 按公升序要求判斷兩...
neuq 1177 親和數 暴力
題目描述 古希臘數學家畢達哥拉斯在自然數研究中發現,220的所有真約數 即不是自身的約數 之和為 1 2 4 5 10 11 20 22 44 55 110 284。而284的所有真約數為1 2 4 71 142,加起來恰好為220。人們對這樣的數感到很驚奇,並稱之為親和數。一般地講,如果兩個數中任...
POJ 1177 矩形周長並
參考部落格 方法 把矩形分成橫線和豎線去處理,可知是完全相同的操作,我們來講下怎麼算出橫線部分,豎線部分就是照搬即可。將橫線儲存在乙個表中,按橫線所處的豎直位置排序 公升序 另外每條橫線帶乙個標記值,原矩形的下線為1,上線為 1 對應過去就是插入線段和刪除線段 從低到高掃瞄橫線,沒掃到一條橫線就能計...