成绩排序(信息学奥赛一本通-T1178)
生活随笔
收集整理的這篇文章主要介紹了
成绩排序(信息学奥赛一本通-T1178)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【題目描述】
給出班里某門課程的成績(jī)單,請(qǐng)你按成績(jī)從高到低對(duì)成績(jī)單排序輸出,如果有相同分?jǐn)?shù)則名字字典序小的在前。
【輸入】
第一行為n (0 < n < 20),表示班里的學(xué)生數(shù)目;
接下來(lái)的n行,每行為每個(gè)學(xué)生的名字和他的成績(jī), 中間用單個(gè)空格隔開。名字只包含字母且長(zhǎng)度不超過(guò)20,成績(jī)?yōu)橐粋€(gè)不大于100的非負(fù)整數(shù)。
【輸出】
把成績(jī)單按分?jǐn)?shù)從高到低的順序進(jìn)行排序并輸出,每行包含名字和分?jǐn)?shù)兩項(xiàng),之間有一個(gè)空格。
【輸入樣例】
4
Kitty 80
Hanmeimei 90
Joey 92
Tim 28
【輸出樣例】
Joey 92
Hanmeimei 90?
Kitty 80
Tim 28
【源程序】
#include<iostream> using namespace std; #include <stdio.h> #include <string.h> struct node{char name[30];int score; }stu[30],temp; int main() {int n;int i,j;cin>>n;for(i=1;i<=n;i++)cin>>stu[i].name>>stu[i].score;for(i=1;i<=n;i++)for(j=i+1;j<=n;j++)if(stu[i].score<stu[j].score){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}else if(stu[i].score==stu[j].score&&strcmp(stu[i].name,stu[j].name)>0){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}for(i=1;i<=n;i++)cout<<stu[i].name<<" "<<stu[i].score<<endl;return 0; }總結(jié)
以上是生活随笔為你收集整理的成绩排序(信息学奥赛一本通-T1178)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一笔画问题(信息学奥赛一本通-T1341
- 下一篇: 围圈报数(信息学奥赛一本通-T1334)