本题要求实现一个函数,求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 Ave=0;
int i;
for(i=0;i<N;i++)
Ave+=S[i];
Ave/=N;
return Ave;
}
原先做法:
ElementType Average( ElementType S[], int N )
{
ElementType s=0,Ave;
N-=1;
for(;N>=0;N–)
s+=S[N];
Ave=s/N;
return Ave;
}
1.做的过程中忽略了N也会在变化,所以此处必须设置一个计数变量
2.求和以及平均数只需要设置一个Ave变量就够了