zzulioj 1177 按要求排序(指標專題)

2021-10-03 00:06:40 字數 1435 閱讀 4766

輸入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 對應過去就是插入線段和刪除線段 從低到高掃瞄橫線,沒掃到一條橫線就能計...