有n個學生的資料,將學生資料按成績高低排序,如果成績相同則按姓名字元的字母序排序,如果姓名的字母序也相同則按照學生的年齡排序,並輸出n個學生排序後的資訊。
測試資料有多組,每組輸入第一行有乙個整數n(n<=1000),接下來的n行包括n個學生的資料。每個學生的資料報括姓名(長度不超過100的字串)、年齡(整形數)、成績(小於等於100的正數)。
將學生資訊按成績進行排序,成績相同的則按姓名的字母序進行排序。學生姓名的字母序區分字母的大小寫,如a要比a的字母序靠前(因為a的asc碼比a的asc碼要小)。然後輸出學生資訊,按照如下格式:
姓名 年齡 成績
輸入3abc 20 99
bcd 19 97
bed 20 97
輸出bcd 19 97
bed 20 97
abc 20 99
#include
#include
#include
typedef
struct student
;//int cmp(student a, student b);
intcmp
(const
void
*a,const
void
*b) */
if(c.score == d.score)
else
return
(c.score > d.score)?1
:-1;
//真返回 1
}int
main()
}qsort
(stu0, n,
sizeof
(stu0[0]
), cmp)
;for
( i =
0; i < n-
1; i++
)printf
("%s %d %d\n"
, stu0[i]
.name, stu0[i]
.age, stu0[i]
.score)
;}
C語言 qsort函式
c程式使用標準庫函式qsort排序整數檔案 include include include include define max 10 int int cmp const void a,const void b int main while feof fp length fclose fp qsor...
C語言 qsort 解析
包含標頭檔案為stdlib.h void qsort void base,size t num,size t width,int compare const void const void 各引數 待排序陣列首位址 陣列中待排序元素數量 各元素的占用空間大小 指向函式的指標,用於確定排序的順序,記住...
C語言qsort用法
一 對int型別陣列排序 int num 100 sample int cmp const void a const void b qsort num,100,sizeof num 0 cmp 二 對char型別陣列排序 同int型別 char word 100 sample int cmp con...