简单字符串排序

简单字符串排序

Time Limit: 5000MS Memory limit: 100000K

题目描述

从键盘输入10个学生的姓名和成绩,请按字典序排列学生的姓名并输出(姓名和成绩对应关系保持不变)。

输入

输入共11行,前10行每行是一个学生的姓名,最后一行是10个用空格分开的整数表示对应的10个学生成绩。

输出

输出姓名按字典序排列后的学生姓名和成绩,共10行,每个学生的姓名和成绩占一行,姓名和成绩间用逗号分开。

示例输入

Bush
White
Mark
Jean
Black
Wood
Jenny
Frank
Bill
Smith
78 85 96 65 46 83 77 88 54 98

示例输出

Bill,54
Black,46
Bush,78
Frank,88
Jean,65
Jenny,77
Mark,96
Smith,98
White,85
Wood,83

提示

来源

示例程序

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

struct node
{
    char name[10];
    int grade;
} student[10], t;

int main()
{
    int i, j;
    for(i=0; i<10; i++)
    {
        cin >> student[i].name;
    }
    for(i=0; i<10; i++)
    {
        cin >> student[i].grade;
    }

    for(i=0; i<9; i++)
        for(j=0; j<9-i; j++)
        {
            if(strcmp(student[j].name,student[j+1].name)>0)
            {
                t = student[j];
                student[j] = student[j+1];
                student[j+1] = t;
            }
        }
    for(i = 0 ; i < 10 ; i++)
        cout << student[i].name<<","<<student[i].grade<<endl;
    return 0;
}
时间: 2024-10-03 09:26:45

简单字符串排序的相关文章

简单的对数组内字符串排序方法

//  NSArray * sortedArray = [cache sortedArrayUsingSelector:@selector(compare:)]; { NSArray * arr1 = @[@"A",@"B",@"C",@"D"]; NSArray * arr2 = @[@"1",@"2",@"3"]; NSArray * arr3 = @[@&quo

算法-低位优先的字符串排序

低位优先的字符串排序相当于是对键索引计数方法的一个扩展,主要用于处理固定长度字符串,比如说手机号,固定电话,银行卡卡号,字符串的长度为N,从右向左开始进行每个键作为值开始遍历,实现比较简单: -(void)lowSort:(NSMutableArray *)dataSource singleLength:(NSInteger)len { NSInteger sourceCount=[dataSource count]; NSInteger R=256; NSMutableArray *tempA

关于字符串排序合并的问题

今天遇到了一个问题,题目大意是输入两个字符串,然后给这两个字符串按照ASCII码从小到大进行排序,最后在将两个字符串合并,要求删除其中相同的字符.一开始的时候感觉挺简单的一道题,但是做起来还是小毛病挺多的.还是直接看代码吧,代码里面的注释有许多需要注意的地方. 1 #include<stdio.h> 2 #include<string.h> 3 void sort(char *p) //给字符串排序,参数为字符串首地址 4 { 5 char temp; 6 char *head,*

C语言之函数调用18—多字符串排序

//字符串排序***** /* =============================================================== 对任意个字符串升序排列! =============================================================== */ #include<stdio.h> #include<string.h> #define N 3          //控制排序数量 #define M 100  

nyoj1112 求次数 (对结构体字符串排序)

题目1112 题目信息 运行结果 本题排行 讨论区 求次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个新的字符串,i 属于[0,strlen(str)]如果新的字符串出现过ans++,例如:acmacm n=3,那么 子串为acm cma mac acm ,只有acm出现过 求ans; 输入 LINE 1: T组数据(T<10) LINE 2: n ,n <= 10,且小于strle

UVA 156 Ananagrams 关于二维数组表示的字符串排序的问题

题目链接:UVA 156 Ananagrams  Ananagrams  Most crossword puzzle fans are used to anagrams--groups of words with the same letters in different orders--for example OPTS, SPOT, STOP, POTS and POST. Some words however do not have this attribute, no matter how

10居然比2小?(字符串排序规则)

建立一张这样的表kk 常规select数据并按id升序输出,出问题了,10比2小? 原来,问题出现在创建表时把字段id类型设为char型,这里就涉及到字符串排序规则的问题了. 所谓的字符串排序规则,就是每一位字符都按照ASCII码进行比较,从字符串左边第一个字符开始往后逐位比较的,分出大小就结束比较. 例如,'1'<'10','10'<'2'<'20'<'5'. 解决方法就很简单啦,只需要修改字段类型及长度即可 alter table kk modify column id int

字符串算法—字符串排序(下篇)

本文将介绍3区基数快速排序.后缀排序法. 1.  前文回顾 在字符串算法-字符串排序(上篇)中,我们介绍了键索引计数法.LSD基数排序.MSD基数排序. 但LSD基数排序要求需排序字符串的长度一致:MSD基数排序虽然对字符串的长度没要求,但其递归循环里的每次循环都需要进行很多操作,且需要额外的空间. 本文将介绍一种更高效的字符串排序方法:结合MSD基数排序和3区快速排序.如果对这两种算法不熟悉的,建议先去了解一下. 2. 3区基数快速排序(3-way radix quicksort) 从例子入手

String之字符串排序

键索引计数法 我们先介绍一种适合小整数键的简单排序方法,这是我们将要学习的字符串排序的基础,举个例子,我们希望将全班学生按组分类.如图 姓名 An Br Da Ga Ha Ja Jh Jn Ma 组号 2 3 3 4 1 3 4 3 1 姓名 Mb Mi Mo Ro Sm Ta Ta Tp Wh 组号 2 2 1 2 4 3 4 4 2 姓名 Wl Ws 组号 3 4 我们这里用数组a[]来存储每个元素,其中每个元素都包含=一个名字和一个组号,a[i].key()返回元素的组号. 排序后的结果