关于一个赛跑问题,请问,我错在哪里了?
题目如下:问题的提出:某大学开田径运动会,现有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.h>
class player
{
public:
int number;
double grade;
};
main()
{
player 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}};
player temp;
for(int i=0; i<12; i++) //排列12次
for(int j=0; j<12-i; j++)
if(a[j].grade>a[j+1].grade)
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
for(i=0; i<12; i++)
cout<<i+1<<" "<<a[i].number<<" "<<a[i].grade<<endl;
}
编译后都没有错,但是运行exe文件后,不仅答案不对,而且还停止工作,说windows检查错误···
怎么错这么离谱啊??
[ 本帖最后由 carmeloyin 于 2010-8-14 17:38 编辑 ]