杭电hdu 4153 Grey Area 简单题

本文介绍了一个基于C语言的程序设计问题解决方案,通过将输入的整数分配到预定义的区间中,并统计各区间内的数值数量,进而计算特定的数学指标。程序采用标准输入输出,并利用数组来高效记录和处理数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://acm.hdu.edu.cn/showproblem.php?pid=4153

对于做简单题,学好英语是关键,英语看不懂,再简单的题也做不出来啊,哈哈。

本题意思是把数分成一个个等分的区间,然后输入一系列的数,分别划分到不同的区间上去,比如区间长度为10,则5属于0~9,统计每个区间上数的个数,然后根据区间数最多的那个为基准,进行计算。

//统计
#include <stdio.h>
#include <string.h>

int main()
{
	int n, w, v;
	int i;
	int count[10], max, mod;
	double ans;
	while(scanf("%d%d", &n, &w)&&n+w){
		mod = max = 0xffffffff;
		ans = 0.01;
		memset(count, 0, sizeof(count));
		for(i = 0; i < n; i ++){
			scanf("%d", &v);
			count[v/w] ++;
			if(max < v)max = v;
		}
		max = max/w;
		for(i = 0; i <= max; i ++){
			if(mod < count[i])mod = count[i];
		}
		for(i = max; i >= 0; i --){
			ans += 1.0*i/max*count[max-i]/mod;
		}
		printf("%.6lf\n", ans);
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值