1004 成绩排名 (20 分)(c语言实现)
生活随笔
收集整理的這篇文章主要介紹了
1004 成绩排名 (20 分)(c语言实现)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
讀入?n(>0)名學生的姓名、學號、成績,分別輸出成績最高和成績最低學生的姓名和學號。
輸入格式:
每個測試輸入包含 1 個測試用例,格式為
第 1 行:正整數 n 第 2 行:第 1 個學生的姓名 學號 成績 第 3 行:第 2 個學生的姓名 學號 成績... ... ... 第 n+1 行:第 n 個學生的姓名 學號 成績其中姓名和學號均為不超過 10 個字符的字符串,成績為 0 到 100 之間的一個整數,這里保證在一組測試用例中沒有兩個學生的成績是相同的。
輸出格式:
對每個測試用例輸出 2 行,第 1 行是成績最高學生的姓名和學號,第 2 行是成績最低學生的姓名和學號,字符串間有 1 空格。
輸入樣例:
3 Joe Math990112 89 Mike CS991301 100 Mary EE990830 95結尾無空行
輸出樣例:
Mike CS991301 Joe Math990112結尾無空行
#include <stdio.h> #pragma warning(disable:4996) struct student {char name[15];char number[100];int chenji; }; typedef struct student Student; int sort[10000][101];//前一個用于存儲學生的名字對應的數碼,后一個用于存儲成績 Student students[10000]; int main() {int n;scanf("%d", &n);int cnt, cnt1;for ( cnt = 0; cnt < n; cnt++) {//錄入成績scanf("%s %s %d", &(students[cnt].name), &(students[cnt].number), &(students[cnt].chenji));//printf("*********\n");}//printf("***********");for ( cnt = 0; cnt < n; cnt++) {sort[cnt][students[cnt].chenji]=1;//以第一個[]作為學生的對應值,第二個[]作為相應學生的分數值//printf("*********\n");}/*/for (cnt1 = 0; cnt1 <= 100; cnt1++){for (cnt = 0; cnt < n; cnt++){printf("sort[%d][%d]=%d ", cnt, cnt1, sort[cnt][cnt1]);printf("%s %s", students[cnt].name, students[cnt].number);}printf("\n");}*///printf("***********");for ( cnt = 100; cnt >=0 ; cnt--){for ( cnt1 = 0; cnt1 < n; cnt1++){if (sort[cnt1][cnt]==1){printf("%s %s", students[cnt1].name, students[cnt1].number);break;}}//printf("***********\n");if (sort[cnt1][cnt] == 1){printf("\n");//printf("%s %s", students[cnt1].name, students[cnt1].number);break;}}for ( cnt = 0; cnt<=100; cnt++){for ( cnt1 = 0; cnt1 < n; cnt1++){if (sort[cnt1][cnt] == 1){printf("%s %s", students[cnt1].name, students[cnt1].number);break;}}if (sort[cnt1][cnt] == 1){//printf("%s %s", students[cnt1].name, students[cnt1].number);break;}}return 0; } /*4 Joe Math990112 89 Mike CS991301 100 Mary EE990830 95 jaj jakldjalk 80*/上述代碼有點亂,很多都是我當時調試代碼的思路,就不改了,應該有同學和我一樣用的dev或者vs沒用熟的.
然后我的排列方式是桶排列,時間復雜度是n級別的,應該沒有錯
總結
以上是生活随笔為你收集整理的1004 成绩排名 (20 分)(c语言实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何跳出两层循环嵌套
- 下一篇: 1005 继续(3n+1)猜想 (25