1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | #include <stdio.h> #include <string.h> void nprintArray( int array[], int size); void cprintArray( char array[], int size); void sprintArray( char array[][10], int size); void nsort( int array[], int size); void csort( char array[], int size); void ssort( char array[][10], int size); int main( void ) { int testa[10] = {3, 2, 8, 1, 9, 4, 7, 6, 5, 0}; char testb[10] = { 'g' , 'e' , 'j' , 'b' , 'w' , 'a' , 's' , 'x' , 'h' , 'r' }; char testc[10][10] = { "john" , "mary" , "" , "lily" , "" , "park" , "elsa" , "sam" , "apple" , "neo" }; printf ( "\n陣列的原始排列為 " ); nprintArray(testa, 10); nsort(testa, 10); printf ( "陣列排序後排列為 " ); nprintArray(testa, 10); printf ( "\n陣列的原始排列為 " ); cprintArray(testb, 10); csort(testb, 10); printf ( "陣列排序後排列為 " ); cprintArray(testb, 10); printf ( "\n陣列的原始排列為 " ); sprintArray(testc, 10); ssort(testc, 10); printf ( "陣列排序後排列為 " ); sprintArray(testc, 10); return 0; } void nprintArray( int array[], int size) { int i; for (i = 0; i < size; i++) { printf ( "%d " , array[i]); } printf ( "\n" ); } void cprintArray( char array[], int size) { int i; for (i = 0; i < size; i++) { printf ( "%c " , array[i]); } printf ( "\n" ); } void sprintArray( char array[][10], int size) { int i; for (i = 0; i < size; i++) { printf ( "%s " , array[i]); } printf ( "\n" ); } void nsort( int array[], int size) { int i, j, temp; for (i = 0; i < size - 1; i++) { for (j = 1; j < size; j++) { if (array[j - 1] > array[j]) { temp = array[j - 1]; array[j - 1] = array[j]; array[j] = temp; } } } } void csort( char array[], int size) { int i, j; char temp; for (i = 0; i < size - 1; i++) { for (j = 1; j < size; j++) { if (array[j - 1] > array[j]) { temp = array[j - 1]; array[j - 1] = array[j]; array[j] = temp; } } } } void ssort( char array[][10], int size) { int i, j; char temp[10]; for (i = 0; i < size - 1; i++) { for (j = 1; j < size; j++) { if (array[j - 1][0] > array[j][0]) { strcpy (temp, array[j - 1]); strcpy (array[j - 1], array[j]); strcpy (array[j], temp); } } } } /* 《程式語言教學誌》的範例程式 檔名:sorttest.c 功能:測試氣泡排序的函數 作者:張凱慶 時間:西元2010年7月 */ |
編譯後執行,結果如下

程式碼說明,請繼續參考
沒有留言:
張貼留言