2021-09 CCF-CSP 非零段划分 C和C++混写

2021-09 CCF-CSP 非零段划分 C和C++混写

前言
本次学习所用设备为微软Surface pro4,操作系统为windows10

注意事项
(1)CFF-CSP考试提交一定要使用C++编译环境 。

题目

实现代码如下

#include<cstdio>
#include<cstring>
#include<algorithm> 
#include<functional>

using namespace std;

int main()
{
	//完成第一行的输入 
	int n,i;
	scanf("%d",&n);
	int number[n+5];
	int number_temp[n+5];
	int max;
	
	//输入数据 
	for(i = 0;i < n;i++)
	{
		scanf("%d",&number[i]);
	}
	
	//对数据进行排序 
	for(i = 0;i < n;i++)
	{
		number_temp[i] = number[i];
	}
	sort(number_temp,number_temp+n,less<int>());
	
	//得到最大值 
	max = number_temp[n-1] + 1;
	 
	//得到非零段数据并且初始化 
	int not_zero_count[max+5];
	for(i = 0;i < max;i++)
	{
		not_zero_count[i] = 0;
	}
	
	//对数值进行处理 
	int p;
	int max_result;
	for(p = 1;p <= max;p++)
	{
		//对数组中的数值进行处理得到0 
		for(i = 0;i < n;i++){
			if(number[i] < p) 
			{
				number[i] = 0;
			}
		}
		
		/* 输出进行验证 
		for(i = 0;i < n;i++){
			printf("%d ",number[i]);
		}
		printf("\n");
		*/
		

		for(i = 0;i < n + 1;i++)
		{
			if((number[i] != 0) && (number[i + 1] == 0)){
				not_zero_count[p-1]++;
			}
			else if( (number[n - 2] == 0) && (number[n - 1] != 0) && (i == n - 1)){
				not_zero_count[p-1]++;
			} 
		}
		
		printf("%d\n",not_zero_count[p-1]);
	}
	
	//升序排列(默认) 
	sort(not_zero_count,not_zero_count + max,less<int>());
	max_result = not_zero_count[max - 1];
	printf("%d",max_result);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值