您的位置:首页 > 其它

简单字符串排序

2014-02-10 15:17 211 查看
简单字符串排序

TimeLimit:5000MSMemorylimit:100000K

题目描述

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

输入

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

输出

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

示例输入

Bush
White
Mark
Jean
Black
Wood
Jenny
Frank
Bill
Smith
78859665468377885498


示例输出

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


此处运用字符串函数:strcmp进行字符串的比较,如果str>str1则返回值为正,如果str=str1则返回值为0,如果str<str1则返回值为负!


#include<stdio.h>
#include<string.h>
intmain()
{
charname[10][100],cpy[100],t;
intn,m,i,j,s[100];
for(i=0;i<10;i++)
{
gets(name[i]);
}
for(i=0;i<10;i++)
{
scanf("%d",&s[i]);
}
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(strcmp(name[j],name[j+1])>0)
{
strcpy(cpy,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],cpy);
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
}
}
for(i=0;i<10;i++)
{
printf("%s,%d\n",name[i],s[i]);
}
return0;
}

[/code]

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: