<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont-阿里云开发者社区

开发者社区> 开发与运维> 正文

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont

简介: 期末考试完了老师要将同 学们的分数按照从高到低排序。小哼的班上只有 5个同学,这 5个同学分别考了 5分、3分、 5分、2分和 8分,哎考得真是惨不忍睹(满分是 10分)。
  • 期末考试完了老师要将同 学们的分数按照从高到低排序。小哼的班上只有 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;
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章