日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

7-1 模拟EXCEL排序 (25 分)

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7-1 模拟EXCEL排序 (25 分) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

7-1 模擬EXCEL排序 (25 分)
Excel可以對一組紀錄按任意指定列排序。現請編寫程序實現類似功能。

輸入格式:
輸入的第一行包含兩個正整數N(≤10
?5
?? ) 和C,其中N是紀錄的條數,C是指定排序的列號。之后有 N行,每行包含一條學生紀錄。每條學生紀錄由學號(6位數字,保證沒有重復的學號)、姓名(不超過8位且不包含空格的字符串)、成績([0, 100]內的整數)組成,相鄰屬性用1個空格隔開。

輸出格式:
在N行中輸出按要求排序后的結果,即:當C=1時,按學號遞增排序;當C=2時,按姓名的非遞減字典序排序;當C=3時,按成績的非遞減排序。當若干學生具有相同姓名或者相同成績時,則按他們的學號遞增排序。

輸入樣例:
3 1
000007 James 85
000010 Amy 90
000001 Zoe 60
輸出樣例:
000001 Zoe 60
000007 James 85
000010 Amy 90

#include<stdio.h> #include<string.h> #include<math.h> #define MAXID 6 #define MAXNAME 8 #define MAXN 100000 typedef struct Student* Ptr; struct Student {char id[MAXID + 1];char name[MAXNAME + 1];int grade; }Record[MAXN];int ComparId(const void * a, const void * b) {return strcmp(((const struct Student*)a)->id, ((const struct Student*)b)->id); }int ComparName(const void * a, const void* b) {int k= strcmp(((const struct Student*)a)->name, ((const struct Student*)b)->name);if(!k)k= strcmp(((const struct Student*)a)->id, ((const struct Student*)b)->id);return k; }int ComparGrade(const void* a, const void* b) {int k = (((const struct Student*)a)->name > ((const struct Student*)b)->name)? 1 : 0;if (!k) {k = (((const struct Student*)a)->grade < ((const struct Student*)b)->grade) ? -1 : 0;if (!k)k = strcmp(((const struct Student*)a)->id, ((const struct Student*)b)->id);}return k; }int main() {int N, C, i;scanf("%d %d",&N,&C);for (i = 0; i < N; i++) {scanf("%s %s %d",Record[i].id,Record[i].name,&Record[i].grade);}switch (C) {case 1:qsort(Record,N, sizeof(struct Student), ComparId);break;case 2:qsort(Record, N, sizeof(struct Student), ComparName);break;case 3:qsort(Record, N, sizeof(struct Student), ComparGrade);break;}for (int i = 0; i < N; i++) {printf("%s %s %d\n",Record[i].id,Record[i].name,Record[i].grade);}return 0; }

總結

以上是生活随笔為你收集整理的7-1 模拟EXCEL排序 (25 分)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。