ACM程序设计之马拉松竞赛

题目描述:校ACM协会近四个月举行了为期100天ACM程序设计之马拉松竞赛,竞赛题总数为1000,同学们反响热烈,先后有许多ACM程序设计竞赛爱好者报名,这些选手按报名时间从1开始先后编号,成功解答的题目数为选手的成绩。
今天进行成绩统计和颁奖仪式,已知按编号排序的选手成绩(各不相同),根据给定标准成绩将这些选手划为两个部分,小于标准成绩的选手不能获得任何奖项,大于等于标准成绩的选手将得到嘉奖,并依成绩从低到高上台领奖。

输入:共三行:
第一行给出选手人数(不超过1000);
第二行依编号从低到高给出选手成绩;
第三行给出标准成绩。

输出:共两行:
第一行给出根据标准成绩划分后的选手成绩,小于标准成绩的部分、大于等于标准成绩的部分内部均
保持原有的先后顺序。
第二行给出依上台领奖次序排好的获奖选手成绩(没有任何选手上台领奖时,输出空行)。

样例输入:5
             230 10 1000 500 399
             500
样例输出:230 10 399 1000 500
             500 1000

用数组来处理这种问题比较合适、简单。分别用两个数组来存储大于等于标准成绩的部分和小于标准成绩的部分,再将这两个部分合并到一个数组中去,然后输出;最后,对大于等于标准成绩的部分的数组进行冒泡排序输出。

#include 
   
   
    
    

using namespace std;

int main()
{
    int n;  //选手人数
    cin >> n;
    int a[n];  //依编号给出选手成绩
    for(int i=0; i
    
    
     
     > a[i];
    }
    int score;
    cin >> score;

    int b[n];
    int c[n];
    int j = 0;
    int k = 0;
    int x = 0;
    int temp;
    for(int i=0; i
     
     
      
      = score)
        {
            b[j++] = a[i];
        }
        else if(a[i] < score)
        {
            c[k++] = a[i];
        }
    }
    cout << endl;

    for(int m=k; m
      
      
       
        b[l])
            {
                temp = b[i];
                b[i] = b[l];
                b[l] = temp;
            }
        }
    }
    for(int i=0; i
       
       
      
      
     
     
    
    
   
   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值