C++技能百炼之——运动员排序问题
2012-01-06 23:04
225 查看
感觉自己用C++越来越生疏了,所以在网上找到了一些题,然后每天做一个练习,不为什么,从基础做起,权当作自己练习的见证了,今天就从最简单的冒泡排序开始~~
问题描述:
问题的提出:某大学开田径运动会,现有12名选手参加100米比赛,对应的运动员号及成绩如表所示,请按照成绩排名并输出,要求每一行输出名次、运动员号及成绩。要求用冒泡法排序。
问题描述:
问题的提出:某大学开田径运动会,现有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(); }
相关文章推荐