摘要:函數詳解函數原型函數的作用及用法函數的參數函數實例排序一個整型數組排序一個結構體用冒泡排序模擬一個函數函數原型函數的作用及用法函數的功能是對數組進行排序,數組有個元素,每個元素大小為可以排序數字,字符,結構體等多種類型
- void qsort( void * base, size_t num, size_t width, int (__cdecl * compare )(const void * elem1, const void * elem2 ) );
- qsort()函數的功能是對數組進行排序,數組有num個元素,每個元素大小為width
- 可以排序數字,字符, 結構體等多種類型
- base: 目標數組
- num: 數組大小
- width: 數組元素的大小
- compara:比較函數
#include #include //用于比較的函數int cmp_by_num(const void* e1, const void* e2){ return *(int*)e1 - *(int*)e2;}void Print(int* p, size_t sz){ size_t i = 0; for (i = 0; i < sz; i++) { printf("%d ", *(p + i)); } printf("/n");}int main(){ int arr[] = { 2,6,3,5,8,4,7,1,2,0,10,30 }; size_t sz = sizeof(arr) / sizeof(arr[0]); qsort(arr, sz, sizeof(arr[0]), cmp_by_num); Print(arr, sz);}
#include #include struct Stu{ char name[20]; int age;};int cmp_by_name(const void* e1, const void* e2){ return strcmp(((struct Stu*)e1)->name, ((struct Stu*)e2)->name);}void Print(struct Stu* p, int sz){ int i = 0; for (i = 0; i < sz; i++) { printf("%s/t%d/n", p[i].name, p[i].age); }}int main(){ struct Stu s[3] = { {"張三", 15}, {"李四", 20}, {"王五", 18} }; size_t sz = sizeof(s) / sizeof(s[0]); qsort(s, sz, sizeof(s[0]), cmp_by_name); Print(s, sz);}
#include #include //用于比較的函數int cmp_by_num(const void* e1, const void* e2){ return *(int*)e1 - *(int*)e2;}void Swap(char* e1, char* e2, size_t width){ size_t i = 0; for (i = 0; i < width; i++) { char tmp = *e1; *e1 = *e2; *e2 = tmp; e1++; e2++; }}void BubbleSort(void* base, size_t num, size_t width, int (*cmp)(const void*, const void*)){ size_t i = 0; for (i = 0; i < num - 1; i++) { size_t j = 0; for (j = 0; j < num - 1 - i; j++) { if (cmp((char*)base + j * width, (char*)base + (j + 1) * width) > 0) { Swap((char*)base + j * width, (char*)base + (j + 1) * width, width); } } }}void Print(int* p, size_t sz){ size_t i = 0; for (i = 0; i < sz; i++) { printf("%d ", *(p + i)); } printf("/n");}int main(){ int arr[] = { 2,6,3,5,8,4,7,1,2,0,10,30 }; size_t sz = sizeof(arr) / sizeof(arr[0]); BubbleSort(arr, sz, sizeof(arr[0]), cmp_by_num); Print(arr, sz);}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/118805.html
摘要:參數含義上圖是函數各個參數的含義,讓我們一個個來看。使用方式頭文件要使用函數我們首先需要引用一個頭文件的實現函數給函數規定了特定的參數。因此我們設計函數時要嚴格遵守其參數設定。 目錄 1.參數含義 1.首元素地址base 2.元素個數num 3.元素大小size 4.自定義比較函數compa...
摘要:目錄一函數是什么二使用排序以升序為例關于型指針整形數組排序字符數組排序字符指針數組排序結構體數組排序浮點型數組排序三使用冒泡排序思想模擬實現函數什么是冒泡排序冒泡排序代碼使用冒泡排序思想模 目錄 一.qsort函數是什么 ?二.使用qsort排序-以升序為例 ? ? ??關于void*型指針...
摘要:我們以冒泡排序為例,模擬實現函數。交換每單位字節對于的二進制序列這樣,冒泡排序就能排序多種數據類型,模擬實現了函數,當然也可以使用其他的排序方法模擬實現函數。 ??...
摘要:故使用無具體類型,又稱通用類型,即可以接收任意類型的指針,但是無法進行指針運算解引用,整數等。求指針所占字節而不是解引用訪問權限大小。數組就是整個數組的大小,數組元素則是數組元素的大小,指針大小都為。 ...
閱讀 1848·2021-11-22 15:24
閱讀 1307·2021-11-12 10:36
閱讀 3194·2021-09-28 09:36
閱讀 1837·2021-09-02 15:15
閱讀 2745·2019-08-30 15:54
閱讀 2391·2019-08-30 11:02
閱讀 2391·2019-08-29 13:52
閱讀 3539·2019-08-26 11:53