ACM程序设计之马拉松竞赛

74 篇文章 0 订阅

ACM程序设计之马拉松竞赛

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte
总提交:1026            测试通过:228

描述

ACM协会近四个月举行了为期100ACM程序设计之马拉松竞赛,竞赛题总数为1000,同学们反响热烈,先后有许多ACM程序设计竞赛爱好者报名,这些选手按报名时间从1开始先后编号,成功解答的题目数为选手的成绩。

今天进行成绩统计和颁奖仪式,已知按编号排序的选手成绩(各不相同),根据给定标准成绩将这些选手划为两个部分,小于标准成绩的选手不能获得任何奖项,大于等于标准成绩的选手将得到嘉奖,并依成绩从低到高上台领奖。

输入

共三行:

第一行给出选手人数(不超过1000);

第二行依编号从低到高给出选手成绩;

第三行给出标准成绩。

输出

共两行:

第一行给出根据标准成绩划分后的选手成绩,小于标准成绩的部分、大于等于标准成绩的部分内部均保持原有的先后顺序。

第二行给出依上台领奖次序排好的获奖选手成绩(没有任何选手上台领奖时,输出空行)。

样例输入

5
230 10 1000 500 399
500

样例输出

230 10 399 1000 500
500 1000

题目来源

南京邮电大学计算机学院首届ACM程序设计大赛


分析:一口老血 哭

题目很清楚,每行结尾输出不带空格。排序出了个小错,怎么找都找不出来。。。

终于解决了,好吧,我彻底败了。

#include<stdio.h>

//ACM程序设计之马拉松竞赛

int main()
{
	int n, a[1000], divide;
	int prize[1000], num = 0;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
		scanf("%d",&a[i]);
	scanf("%d",&divide);

	for(int i=0;i<n;i++)
	{
		if(a[i] >= divide)
		{
			prize[num++] = a[i];
		}
	}

	if(num > 0)
	{
		for(int i=0;i<n;i++)
		{
			if(a[i] < divide)
			{
				printf("%d ",a[i]);
			}
		}

		for(int i=0;i<num-1;i++)
			printf("%d ",prize[i]);
		printf("%d\n",prize[num-1]);

		for(int i=0;i<num-1;i++)
		{
			for(int j=i+1;j<num;j++)
			{
				if(prize[i] > prize[j])
				{
					int tmp = prize[i];
					prize[i] = prize[j];
					prize[j] = tmp;
				}
			}
		}
		for(int i=0;i<num-1;i++)
			printf("%d ",prize[i]);
		printf("%d\n",prize[num-1]);
	}
	else
	{
		for(int i=0;i<n-1;i++)
		{
			printf("%d ",a[i]);
		}
		printf("%d\n",a[n-1]);
		printf("\n");
	}

	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值