[問題] 結構陣列的排序
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
C
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
使用快速排序結構陣列裡的資料
餵入的資料(Input):
kevin 45 46
mary 26 55
jay 48 89
預期的正確結果(Expected Output):
jay 48 89
kevin 45 46
mary 26 55
按照字母排序
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
#include <stdio.h>
#include <stdlib.h>
typedef struct student
{
char name[5];
unsigned int syntax_ptr;
unsigned char count;
}STUDENT;
STUDENT inst[3]=
{
"kevin",45,46,
"mary",26,55,
"jay",48,89
};
/* 函數: 快速排序法的遞迴函數 */
void q_sort(STUDENT *data, int begin, int end) {
char partition;
char temp;
int left, right, k;
if ( begin < end ) {
left = begin;
right = end + 1;
partition = data[left];
do {
do {
left++;
} while( data[left] < partition );
do {
right--;
} while( data[right] > partition );
if ( left < right ) {
temp = data[left];
data[left] = data[right];
data[right] = temp;
}
} while( left < right );
temp = data[begin];
data[begin] = data[right];
data[right] = temp;
q_sort(data, begin,right-1);
q_sort(data, right+1, end);
}
}
/* 函數: 快速排序法 */
void quickSort(char *data, int count)
{
q_sort(data, 0, count-1);
}
/*主程式 */
int main() {
quickSort(inst, 3); /* 執行快速排序法 */
system("PAUSE");
return 0;
}
補充說明(Supplement):
我的問題是怎麼讓結構陣列在排序中運算,程式跑出錯誤的訊息是資料型態錯誤
我也不知道要怎麼解決,要照字母大小排序,有人可以給點提示嗎?
謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.26.158.110
推
04/03 15:01, , 1F
04/03 15:01, 1F
→
04/03 15:02, , 2F
04/03 15:02, 2F
→
04/03 15:03, , 3F
04/03 15:03, 3F
→
04/03 15:12, , 4F
04/03 15:12, 4F
→
04/03 15:12, , 5F
04/03 15:12, 5F
→
04/03 15:14, , 6F
04/03 15:14, 6F
→
04/03 15:14, , 7F
04/03 15:14, 7F
→
04/03 16:06, , 8F
04/03 16:06, 8F
→
04/03 16:44, , 9F
04/03 16:44, 9F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章