1004 成绩排名 (20 分)(c语言实现)
生活随笔
收集整理的這篇文章主要介紹了
1004 成绩排名 (20 分)(c语言实现)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
讀入?n(>0)名學(xué)生的姓名、學(xué)號(hào)、成績,分別輸出成績最高和成績最低學(xué)生的姓名和學(xué)號(hào)。
輸入格式:
每個(gè)測試輸入包含 1 個(gè)測試用例,格式為
第 1 行:正整數(shù) n 第 2 行:第 1 個(gè)學(xué)生的姓名 學(xué)號(hào) 成績 第 3 行:第 2 個(gè)學(xué)生的姓名 學(xué)號(hào) 成績... ... ... 第 n+1 行:第 n 個(gè)學(xué)生的姓名 學(xué)號(hào) 成績其中姓名和學(xué)號(hào)均為不超過 10 個(gè)字符的字符串,成績?yōu)?0 到 100 之間的一個(gè)整數(shù),這里保證在一組測試用例中沒有兩個(gè)學(xué)生的成績是相同的。
輸出格式:
對每個(gè)測試用例輸出 2 行,第 1 行是成績最高學(xué)生的姓名和學(xué)號(hào),第 2 行是成績最低學(xué)生的姓名和學(xué)號(hào),字符串間有 1 空格。
輸入樣例:
3 Joe Math990112 89 Mike CS991301 100 Mary EE990830 95結(jié)尾無空行
輸出樣例:
Mike CS991301 Joe Math990112結(jié)尾無空行
#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];//前一個(gè)用于存儲(chǔ)學(xué)生的名字對應(yīng)的數(shù)碼,后一個(gè)用于存儲(chǔ)成績 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;//以第一個(gè)[]作為學(xué)生的對應(yīng)值,第二個(gè)[]作為相應(yīng)學(xué)生的分?jǐn)?shù)值//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*/上述代碼有點(diǎn)亂,很多都是我當(dāng)時(shí)調(diào)試代碼的思路,就不改了,應(yīng)該有同學(xué)和我一樣用的dev或者vs沒用熟的.
然后我的排列方式是桶排列,時(shí)間復(fù)雜度是n級(jí)別的,應(yīng)該沒有錯(cuò)
總結(jié)
以上是生活随笔為你收集整理的1004 成绩排名 (20 分)(c语言实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何跳出两层循环嵌套
- 下一篇: 1005 继续(3n+1)猜想 (25