运动会排名

编写一个c++程序,对运动会上百米比赛成绩进行排名。

相关知识

多维数组C++支持多维数组。
多维数组声明的一般形式如下:

type name[size1][size2]...[sizeN];

多维数组最简单的形式是二维数组。声明一个二维数组即为声明一个x行y列数组,形式如下:

type arrayName [ x ][ y ];
举例说明:

在这里插入图片描述
初始化二维数组
多维数组可以通过在括号内为每行指定值来进行初始化。下面是一个带有3行4列的数组。

int a[3][4] = {   
{0, 1, 2, 3} ,   /*  初始化索引号为 0 的行 */ 
{4, 5, 6, 7} ,   /*  初始化索引号为 1 的行 */ 
{8, 9, 10, 11}   /*  初始化索引号为 2 的行 */
};

内部嵌套的括号是可选的,下面的初始化与上面是等同的:

int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};

访问二维数组二维数组中的元素是通过使用下标(即数组的行索引和列索引)来访问的。
举例说明:

int val = a[2][3];

即:将数组中第3行第4个元素赋值给变量val。
选择排序选择排序详情见上一关。
编程要求已知某运动会男子百米跑决赛成绩,要求编写程序,按成绩排序并输出排序结果,包括输出名次、运动员编号和成绩三项内容。
提示:用M行3列数组存放运动员号码、成绩与名次,对决赛成绩降序排序,最后按排序后的位置输出名次。(M为运动员人数)
输入输出说明:

输入运动员编号和成绩按顺序输出名次、运动员编号和成绩输出。
测试举例:
测试输入:
1 9.06 2 9.55 3 9.50 4 9.56
预期输出:

1 1 9.06
2 3 9.50
3 2 9.55
4 4 9.56
#include <iostream>
#include <iomanip>
#define M 4
using namespace std;
int main ()
{
    float A[M][3];
    for(int i = 0;i < M;i++)
 {
        for (int j = 1;j<3;j++)
  {
            cin>>A[i][j];
        }
    }
    for(int k=0;k < M;k++)
    {
        int min=k;
        for(int l=k+1;l < M;l++)
  {
            if(A[min][2]>A[l][2]) 
            {
                float t=A[l][2];
                A[l][2]=A[min][2];
                A[min][2]=t;
                int t1 = A[l][1];
                A[l][1] = A[min][1];
                A[min][1] = t1;
            }
        }
    }
    int m = 1;
    int c = 1;
    A[0][0] = 1;
    while(m < M)
 {
        if(A[m][2] == A[m-1][2])
        {
            A[m][0] = c;
            c--;
        }
        else
  {
            A[m][0] = c+1;
        }
        m++;
        c++;
    }
    for(int a = 0;a < M;a++)
 {
        for(int b = 0 ;b < 2;b++)
  {
            cout<<int(A[a][b])<<' ';
        }
        cout<<fixed<<setprecision(2)<<A[a][2]<<' '<<'\n';
    }
    return 0;
}
发布了180 篇原创文章 · 获赞 169 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/huangziguang/article/details/105465673
今日推荐