- 期末考试完了老师要将同 学们的分数按照从高到低排序。小哼的班上只有 5个同学,这 5个同学分别考了 5分、3分、 5分、2分和 8分,哎考得真是惨不忍睹(满分是 10分)。接下来将分数进行从大到小排序, 排序后是 8 5 5 3 2。
- 我们这里只需借助一个一维数组就可以解决这个问题。请确定你真的仔细想过再往下 看哦。 首先我们需要申请一个大小为 11 的数组 int a[11]。OK,现在你已经有了 11 个变量,编 号从 a[0]~a[10]。刚开始的时候,我们将 a[0]~a[10]都初始化为 0,表示这些分数还都没有人 得过。例如 a[0]等于 0就表示目前还没有人得过 0分,同理 a[1]等于 0就表示目前还没有人 得过 1分……a[10]等于 0就表示目前还没有人得过 10分。
- 代码:
#include<iostream> #include<stdio.h> using namespace std; int main(){ int n,m; int a[1005]; cin>>n; for(int i=0;i<1005;i++){ a[i]=0; } for(int i=0;i<n;i++){ cin>>m; a[m]++; } for(int i=1005;i>=0;i--){ for(int j=0;j<a[i];j++) cout<<i<<" "; } return 0; }