您的位置:首页 > 编程语言 > C语言/C++

C++技能百炼之——运动员排序问题

2012-01-06 23:04 225 查看
感觉自己用C++越来越生疏了,所以在网上找到了一些题,然后每天做一个练习,不为什么,从基础做起,权当作自己练习的见证了,今天就从最简单的冒泡排序开始~~

问题描述:

问题的提出:某大学开田径运动会,现有12名选手参加100米比赛,对应的运动员号及成绩如表所示,请按照成绩排名并输出,要求每一行输出名次、运动员号及成绩。要求用冒泡法排序。

运动员号

成绩(秒)

运动员号

成绩(秒)

001

13.6

031

14.9

002

14.8

036

12.6

010

12.0

037

13.4

011

12.7

102

12.5

023

15.6

325

15.3

025

13.4

438

12.7

#include <iostream>
#include <iomanip>
using namespace std;
struct sport//声明运动员结构体
{
char num[4];//运动员编号
double grade;//运动员成绩
};
void main()
{
sport a[12] = {{"001",13.6},{"002",14.8},{"010",12.0},
{"011",12.7},{"023",15.6},{"025",13.4},
{"031",14.9},{"036",12.6},{"037",13.4},
{"102",12.5},{"325",15.3},{"438",12.7}};//初始化
sport temp;
int i,j;
int row = 12,col = 3;
for(i=1;i<row;i++)//冒泡排序
for (j=0;j<row-i;j++)
{
if (a[j].grade>a[j+1].grade)
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
cout<<setw(6)<<"名次"<<setw(6)<<"编号"<<setw(6)<<"成绩"<<endl;
for (i=0;i<row;i++)
{
cout<<setw(6)<<(i+1)<<setw(6)<<a[i].num<<setw(6)<<a[i].grade<<endl;
}
cin.get();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: