您的位置:首页 > 其它

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

2013-04-09 17:09 746 查看
内容:输入10个学生的姓名和成绩,按字典序排列学生的姓名并输出(姓名和成绩对应关系保持不变)

目的:掌握字符串的排序方法

程序代码:

/*
* 程序的版权和版本声明部分:
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作    者:匡效国
* 完成日期:2013 年 4 月 09 日
* 版 本 号:v1.0
*
* 对任务及求解方法的描述部分:
* 输入描述: 输入共11行,前10行每行是一个学生的姓名,
*			最后一行是10个用空格分开的整数表示对应
*			的10个学生成绩。
* 问题描述:按字典序排列学生的姓名并输出(姓名和成绩对应关系保持不变)
* 程序输出:见下图
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
#include <string>
using namespace std;
int main()
{
int i,j,temp2,a[10];//定义一个长度为10的数组a
string name[10],temp1;//定义长度为10的字符串数组name
for(i=0;i<=9;i++)//循环输入学生名字
cin>>name[i];
for(i=0;i<=9;i++)//循环输入学生成绩
cin>>a[i];
for(i=0;i<9;i++)//使用双层循环,对名字进行排序
{
for(j=0;j<9-i;j++)
{
if(name[j]>name[j+1])//如果前者大于后者,两者进行交换,同时对应成绩也进行交换
{
temp1=name[j];
name[j]=name[j+1];
name[j+1]=temp1;
temp2=a[j];
a[j]=a[j+1];
a[j+1]=temp2;
}
}
}
cout<<endl;
for(i=0;i<=9;i++)//循环输出排列好的名字和成绩
cout<<name[i]<<","<<a[i]<<endl;
return 0;
}

运行结果:



感悟:其实字符串的排序方法是和数字的排序方法是一样的,所以掌握了数字的排序,也就掌握了字符串的排序了

题目来源:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1334
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐