OJ题:成绩排序

题目描述

查找和排序
题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩
      都按先录入排列在前的规则处理。
   例示:
   jack      70
   peter     96
   Tom       70
   smith     67
   从高到低  成绩
   peter     96
   jack      70
   Tom       70
   smith     67
   从低到高
   smith     67
   Tom       70
   jack      70
   peter     96      

输入描述:
输入多行,先输入要排序的人的个数,然后分别输入他们的名字和成绩,以一个空格隔开

输出描述:
按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开
输入例子:
3
0     我不清楚这里为什么要有个0,感觉没用!!!
fang 90
yang 50
ning 70
输出例子:
fang 90
ning 70
yang 50

代码实现:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define n 10

typedef struct user
{
    char name[20];
    int exam ;
}USER_STR ;

int main(void)
{
    USER_STR str[1000] ;
    int row = 0;
    int i , j;
    int count  ;
    int temp ;
    memset(str,0,1000);
    USER_STR temp1;
    scanf("%d",&row) ;
    getchar();
    scanf("%d",&count);
    for(i = 0 ; i < row ; i++)
    {
        scanf("%s %d",str[i].name,&str[i].exam);
    }
    for(j = 1 ; j < row - 1 ; j++)
    {
        for(i = 0 ; i <= n-1-j ; i++)
        {
            if(str[i].exam < str[i+1].exam)
            {
                temp1 = str[i];
                str[i] = str[i+1];
                str[i+1] = temp1 ;
            }
        }
    }
    for(i = 0 ; i < row ; i++)
    {
        printf("%s %d\n",str[i].name , str[i].exam) ;
    }
    return 0 ;
}
时间: 2024-09-21 21:28:00

OJ题:成绩排序的相关文章

excel表格如何按成绩排序

  excel按成绩排序步骤如下: 方法一.打开Excel表格,光标定位到做为排序依据的成绩列(zf),点击常用工具栏中的"降序排序"按钮.就可以让整个表依"zf"列排序.(不能选中这一列再排序,这样做只能这一列排序,而其它列不动) 方法二. 1.点击菜单栏"数据"-"排序" 2.在弹出来的"排序对话框",选择排序的"主要关键字"-"zf",排序方式"升序&

sql server-SQL SERVER先按照成绩排序,成绩相同的按照成绩排序

问题描述 SQL SERVER先按照成绩排序,成绩相同的按照成绩排序 像这种两重排序,是不是只要写两个order by就行了?哪个写在前面呢? 解决方案 order by 字段1, 字段2 解决方案二: 一个order by就可以,把需要排序的两个字段用","隔开 解决方案三: select语句中,只用一个order by语句即可.但两个排序的字段可并列,优先的字段在前.比如: select * from table1order by 成绩,姓名 这样,列举的数据以"成绩&q

经典算法题每日演练——第二十三题 鸡尾酒排序

原文:经典算法题每日演练--第二十三题 鸡尾酒排序     这篇我们继续扯淡一下鸡尾酒排序,为了知道为啥取名为鸡尾酒,特意看了下百科,见框框的话,也只能勉强这么说了.   要是文艺点的话,可以说是搅拌排序,通俗易懂点的话,就叫"双向冒泡排序",我想作为码农的话,不可能不知道冒泡排序, 冒泡是一个单向的从小到大或者从大到小的交换排序,而鸡尾酒排序是双向的,从一端进行从小到大排序,从另一端进行从大 到小排序. 从图中可以看到,第一次正向比较,我们找到了最大值9.             

经典算法题每日演练——第二十二题 奇偶排序

原文:经典算法题每日演练--第二十二题 奇偶排序   这个专题因为各种原因好久没有继续下去了,MM吧...你懂的,嘿嘿,不过还得继续写下去,好长时间不写,有些东西有点生疏了, 这篇就从简单一点的一个"奇偶排序"说起吧,不过这个排序还是蛮有意思的,严格来说复杂度是O(N2),不过在多核的情况下,可以做到 N2 /(m/2)的效率,这里的m就是待排序的个数,当m=100,复杂度为N2 /50,还行把,比冒泡要好点,因为重点是解决问题的奇思妙想.     下面我们看看这个算法是怎么描述的,既

c语言-一个OJ题,数字太大,计算机没法存储,如何解?

问题描述 一个OJ题,数字太大,计算机没法存储,如何解? http://219.218.128.149/JudgeOnline/problem.php?id=1261 这是这道题的地址,3个区域,A,B,C 开始在A,跳到别的区域,不能原地跳,且最后一次跳只能跳回A,输入跳的次数n,问一共有多少种跳法,最后把跳法数%10000,我算法已经弄好,但是发现跳法数太多,计算机无法存储,最高到2^1000,怎么解决? 解决方案 总结规律呗,不需要很多内存的

dataset-C#两个班级都有班级成绩表,将两个成绩表合并,按成绩排序

问题描述 C#两个班级都有班级成绩表,将两个成绩表合并,按成绩排序 C#将两个字段相同的dataset合并,并排序(两个班级都有班级成绩表,将两个成绩表合并,按成绩排序) 解决方案 DataSet dsClass1 = XXX1(); DataSet dsClass2 = XXX2(); dsClass1.Merge(dsClass2); DataView dv = new DataView(dsClass1.Tables[0]); dv.Sort = "Score desc"; Re

第16周-任务2-学生成绩排序

[题目] 文件score.dat中保存的是100名学生的姓名和C++课.高数和英语成绩. (1)定义学生类,其中包含姓名.C++课.高数和英语成绩及总分.均分数据成员,成员函数根据需要确定. (2)读入这名学生的成绩,用对象数组进行存储. (3)求出各科和总分的最高分. (4)请按总分的降序(高成绩在前,低成绩在后)排序 (5)在屏幕上显示各科及总分的最高分,排序后的成绩单(包括总分)保存到文件odered_score.dat中. <下载相关文件> [一点说明] 本题中专门提出了设计学生类.我

[程序员面试题精选100题]10.排序数组中和为给定值的两个数字

剑指Offer之和为S的两个数字 剑指Offer之和为S的连续正数序列 扩展(1):输入一个数组,判断这个数组中是不是存在三个数字i, j, k,满足i+j+k等于0. 扩展(2):如果输入的数组是没有排序的,但知道里面数字的范围,其他条件不变,如何在O(n)时间里找到这两个数字?这个的基本思路是先用哈希表实现O(n)的排序(请参照本面试题系列的第57题),接下来的步骤都一样了.

写给不想做OJ题的C++学习者

[来信] 老师: 您好,我看了您的很多博客内容,想请教您一些问题. 以前自己跟着学校老师过过一遍基础的C++(谭浩强的书),现在打算自己好好的学C++,目前我也在看<C++ primer>,对语法知识和面向对象有了一定的理解(容器算法,模板方面还不太理解),现在我想做些题目,可是对OJ平台上的题目真是很烦(因为英语水平有限),往往不会去那么在意题目的细节,加上他评判的标准会不会太严格了,导致在细节上花了很多时间,而我只是想通过题目来巩固所学到的知识,并不是为了比赛去做题,也许做一些实例有帮助.