求自定类型元素的平均

本题要求实现一个函数,求N个集合元素S[]的平均值,其中集合元素的类型为自定义的ElementType。

函数接口定义:
ElementType Average( ElementType S[], int N );
其中给定集合元素存放在数组S[]中,正整数N是数组元素个数。该函数须返回N个S[]元素的平均值,其值也必须是ElementType类型。

裁判测试程序样例:
#include <stdio.h>

#define MAXN 10
typedef float ElementType;

ElementType Average( ElementType S[], int N );

int main ()
{
ElementType S[MAXN];
int N, i;

scanf("%d", &N);
for ( i=0; i<N; i++ )
    scanf("%f", &S[i]);
printf("%.2f\n", Average(S, N));

return 0;

}

/* 你的代码将被嵌在这里 */
输入样例:
3
12.3 34 -5
输出样例:
13.77

ElementType Average(ElementType s[],int N)
{
ElementType sum=0;
int i;
for(i=0;i<N;i++)
{
sum+=s[i];
}
return sum/N;
}

当你有一个自定类型元素序列,并需要找到这个序列的中位数时,首先你需要对这些元素进行排序,因为中位数是位于数组中间位置的值。如果元素的数量是奇数,那么中位数就是排序后的中间元素;如果是偶数,则中位数是中间两个元素平均值。 如果你正在使用编程语言,例如Python,你可以按照以下步骤操作: 1. 义一个函数,接受一个包含自定类型元素的列表作为输入。 2. 使用适当的排序算法(如快速排序、归并排序等)对列表进行排序。对于自定类型,通常需要实现`__lt__`或其他比较方法以便于排序。 3. 确序列的长度,然后检查它是否是奇数还是偶数。 - 如果长度是奇数,直接返回排序后的列表中间索引处的元素。 - 如果长度是偶数,计算中间两个元素的索引,取它们的平均值作为中位数,然后返回这两个元素平均值。 ```python def find_median(lst): lst.sort(key=lambda x: x.key) # 假设元素有一个名为key的属性用于排序 length = len(lst) if length % 2 == 0: mid1 = length // 2 - 1 mid2 = length // 2 return (lst[mid1] + lst[mid2]) / 2 else: mid = length // 2 return lst[mid] # 示例 custom_list = [CustomClass(3), CustomClass(1), CustomClass(4), CustomClass(1)] median = find_median(custom_list) ``` 在这个例子中,`CustomClass`是你自定义的类型,它可能有一个可以用于比较大小的`key`属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值