qsort

    1熱度

    4回答

    有沒有辦法在另一個函數中使用main()中定義的靜態數組,而不將它作爲參數提供給函數? 例如: main()中定義了陣列: int Array[10]; 填充整數。我想創建一個的qsort比較函數,即必須有這個頭: int compar (const void* a, const void* b); ,我想它來決定這樣的: if Array[a]<Array[b] return 1 等

    1熱度

    2回答

    我有以下問題: 中的qsort我比較功能如下: static int compare(const void *arg1, const void *arg2) { return strcmp((const char *) arg1, (const char *) arg2); } 這並沒有工作,所以我擡起頭的代碼示例中的手冊頁和我改變它一點點,所以現在它看起來像這樣: static

    -1熱度

    3回答

    我想通過增加一個字段(雙數)來對結構數組進行排序,但似乎qsort()以某種方式破壞了此數組中的數據調用顯示字段填充了一些隨機值)。此外,如果我將比較器更改爲按後代順序排序數組,qsort不會損壞數據,但它不會對數組進行排序 - 在調用之後,所有內容都是相同的。 這個小程序演示了此問題: #include <stdio.h> #include <stdlib.h> #include <math

    0熱度

    2回答

    #include <stdio.h> typedef struct { int occurrence char charArray[101]; }Wordy; int comparing(const void *a, const void *b) { //.... } int main(void) { int i=0; Wordy

    0熱度

    3回答

    我想排列我的記錄,以便按名稱按升序對記錄進行排序。如果有名稱以相同的名稱,它會他們的成績降序排列 例如排序:原來的文本文件 simpson bart 25 simpson bart 35 simpson lisa 90 simpson bart 34 所需的輸出: simpson bart 35 simpson bart 34 simpson bart 25 simpson lis

    0熱度

    2回答

    我在排序C中的qsort() char字符串時遇到問題。 我想按字符串的長度對數組進行排序。 我發現這個代碼進行排序二維數組: int compare(const void *name1, const void *name2) { const char *name1_ = *(const char **)name1; const char *name2_ = *(const

    0熱度

    1回答

    我使用stdlib.h庫附帶的qsort()對字符串結構數組進行排序。 它本質上是一個字符串數組,但其結構包含數組。 例如: typedef struct node { char name[MAX_SIZE + 1]; } Node; 然後我節點的數組,包含名稱是: Node nodes_list[MAX_SIZE + 1]; 我的問題是,我希望當我打印以下排序nodes_li

    1熱度

    1回答

    我在Qt中使用qSort來對QList進行排序,其中包含struct。我注意到波蘭字符「Ś」在排序列表的末尾或開始處(取決於順序)。是否有字符串比較函數將「Ś」放在「S」旁邊?

    3熱度

    2回答

    快速排序的內部實施被聲明爲 void qsort (void* base, size_t num, size_t size, int (*compar)(const void*,const void*)); 我想知道如何快速排序實現反射特性。我的意思是它如何調用我們傳遞的名字的函數?

    0熱度

    4回答

    我是一個初學C程序員,想習慣術語和指針。 我在搜索排序數值數組元素的方法時發現了以下工作函數原型。該函數是qsort,它使用指針。現在我所理解的是,「const」這個詞確保了值a和b不變,但不是指針。如果我在這裏錯了,請糾正我。我的問題是: 爲什麼我們使用void *的功能,我們不能用int *從 開始? 返回部分 中的工程*(int*)a如何工作? 爲什麼qsort算法需要這麼多參數? int