题目
要求实现一个函数,求 N N N 个集合元素 S [ ] S[] S[] 的平均值,其中集合元素的类型为自定义的 E l e m e n t T y p e ElementType ElementType。
函数接口定义
ElementType Average( ElementType S[], int N );
其中给定集合元素存放在数组 S [ ] S[] S[] 中,正整数 N N N 是数组元素个数。该函数须返回 N N N 个 S [ ] S[] S[] 元素的平均值,其值也必须是 E l e m e n t T y p e ElementType 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
题解
解题思路
将传入函数的数组,先进行求和,再除以数组的个数,将得到的平均值返回即可。
完整代码
#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;
}
/* 你的代码将被嵌在这里 */
ElementType Average(ElementType S[], int N)
{
ElementType average = 0;
int i = 0;
for (i; i < N; i++)
{
average = average + S[i];
}
average /= N;
return average;
}
AC代码
ElementType Average(ElementType S[], int N)
{
ElementType average = S[0];
int i = 1;
for (i = 1; i < N; i++)
average += S[i];
average /= N;
return average;
}