6-4 求自定类型元素的平均
本题要求实现一个函数,求N个集合元素S[]的平均值,其中集合元素的类型为自定义的ElementType。
函数接口定义:
ElementType Average( ElementType S[], int N );
其中给定集合元素存放在数组S[]中,正整数N是数组元素个数。该函数须返回N个S[]元素的平均值,其值也必须是ElementType类型。
#include <stdio.h> ElementType Average( ElementType S[], int N ){ if (N <= 0) { return 0.0; // 避免除零错误 } ElementType ave=0;//自定义类型值 ElementType sum=0; for(int i = 0;i<=N;i++){ sum+=S[i]; } ave=sum/N; return ave; }
裁判测试程序样例: #include <stdio.h> #define MAXN 10 typedef float ElementType;//定义为float类型 ElementType Average( ElementType S[], int N ); int main () { ElementType S[MAXN];//相当于float 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,可以定义数值类型(int、float、double)、非数值类型(数组、结构体、联合体、指针等)。
用 typedef 自定义类型。
注意:
ElementType在此例中实际就是float类型- 输入输出格式仍需按原始类型(
%f)处理 - 数学运算(加法、除法)对
float类型有效
浙公网安备 33010602011771号