成绩排序(信息学奥赛一本通-T1178)
生活随笔
收集整理的這篇文章主要介紹了
成绩排序(信息学奥赛一本通-T1178)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目描述】
給出班里某門課程的成績單,請你按成績從高到低對成績單排序輸出,如果有相同分數則名字字典序小的在前。
【輸入】
第一行為n (0 < n < 20),表示班里的學生數目;
接下來的n行,每行為每個學生的名字和他的成績, 中間用單個空格隔開。名字只包含字母且長度不超過20,成績為一個不大于100的非負整數。
【輸出】
把成績單按分數從高到低的順序進行排序并輸出,每行包含名字和分數兩項,之間有一個空格。
【輸入樣例】
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; }總結
以上是生活随笔為你收集整理的成绩排序(信息学奥赛一本通-T1178)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一笔画问题(信息学奥赛一本通-T1341
- 下一篇: 围圈报数(信息学奥赛一本通-T1334)