题目1196:成绩排序

题目描述:

用一维数组存储学号和成绩,然后,按成绩排序输出。

输入:

输入第一行包括一个整数N(1<=N<=100),代表学生的个数。

接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。

输出:

按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。

如果学生的成绩相同,则按照学号的大小进行从小到大排序。

样例输入:
3
1 90
2 87
3 92
样例输出:
2 87
1 90
3 92

C++代码:

 #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    using namespace std;
    const int maxn=100+3;
    int num[maxn],grade[maxn];

    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF&&(n>=1&&n<=100))
        {
            for(int a=0;a<n;a++)
                scanf("%d%d",&num[a],&grade[a]);
            for(int i=n-1;i>=1;i--)
            for(int j=0;j<i;j++)
            if(grade[j]<grade[j+1]||(grade[j]==grade[j+1])&&(num[j]<num[j+1]))
            {
                int temp=grade[j];
                grade[j]=grade[j+1];
                grade[j+1]=temp;
                temp=num[j];
                num[j]=num[j+1];
                num[j+1]=temp;
            }
            for(int b=n-1;b>=0;b--)
            {
                printf("%d %d\n",num[b],grade[b]);
            }
        }
        return 0;
    }
/**************************************************************
    Problem: 1196
    User: Carvin
    Language: C++
    Result: Accepted
    Time:50 ms
    Memory:1520 kb
****************************************************************/

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-15 21:41:31

题目1196:成绩排序的相关文章

1196.成绩排序

题目描述: 用一维数组存储学号和成绩,然后,按成绩排序输出. 输入: 输入第一行包括一个整数N(1<=N<=100),代表学生的个数. 接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩. 输出: 按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来. 如果学生的成绩相同,则按照学号的大小进行从小到大排序. 样例输入: 3 1 90 2 87 3 92 样例输出: 2 87 1 90 3 92 #include<iostream> #include<al

题目2 成绩排序

一直超时,但是程序没有任何问题,我在论坛上看到所有用Java写的这道题目都超时了,所以应该是评判系统的问题. 1 import java.util.Arrays; 2 import java.util.Scanner; 3 4 public class Main{ 5 static class stu implements Comparable<stu>{ 6 String name; 7 int age; 8 int score; 9 @Override 10 public int comp

九度oj 题目1196:成绩排序

题目1196:成绩排序 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5192 解决:1792 题目描述: 用一维数组存储学号和成绩,然后,按成绩排序输出. 输入: 输入第一行包括一个整数N(1<=N<=100),代表学生的个数.接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩. 输出: 按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来.如果学生的成绩相同,则按照学号的大小进行从小到大排序. 样例输入: 3 1 90 2 87 3 92 样例输出: 2

九度oj 题目1061:成绩排序

题目1061:成绩排序 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:24473 解决:6960 题目描述: 有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息. 输入: 测试数据有多组,每组输入第一行有一个整数N(N<=1000),接下来的N行包括N个学生的数据.    每个学生的数据包括姓名(长度不超过100的字符串).年龄(整形数).成绩(小于等于100的正数). 输出: 将学

刷题1:成绩排序

刷题1:成绩排序 来源:https://www.nowcoder.com/practice/0383714a1bb749499050d2e0610418b1 题目: 查找和排序 题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理. 示例: jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter 96 jack 70 Tom 70 smith 67 从低到高 smith 67 jack 70 Tom

03:成绩排序

03:成绩排序 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前. 输入 第一行为n (0 < n < 20),表示班里的学生数目:接下来的n行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开.名字只包含字母且长度不超过20,成绩为一个不大于100的非负整数. 输出 把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格.

题目1202:排序

题目1202:排序 时间限制:1 秒 内存限制:32 兆 特殊判题:否 题目描述: 对输入的n个数进行排序并输出. 输入: 输入的第一行包括一个整数n(1<=n<=100). 接下来的一行包括n个整数. 输出: 可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格. 每组测试数据的结果占一行. 样例输入: 4 1 4 3 2 样例输出: 1 2 3 4  1 #include <stdio.h> 2 3 int main(int argc, const

查询每门学科成绩在前2位的记录,并按学科,成绩排序

现在有学生成绩表,结构如下 Create Table StuAchievement ( StuId varchar(8), CourseId varchar(10), Achievement int ) 数据就自己动动手录入吧 SELECT * FROM StuAchievement A WHERE EXISTS( SELECT TOP 1 * FROM StuAchievement b WHERE a.CourseId=b.CourseId AND b.Achievement >a.Achie

实验12:Problem I: 成绩排序

Home Web Board ProblemSet Standing Status Statistics Problem I: 成绩排序 Problem I: 成绩排序 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 490  Solved: 403[Submit][Status][Web Board] Description 定义Student类: 1. 数据成员string name和int score表示一个学生的姓名.成绩. 2. 无参构造函