昨天我们讲到过求自定类型元素的平均值,也就是用一个数组将所有元素存储起来。
然后遍历整个数组,把数组中的每个元素相加,最后除以数组元素的数量得到平均值。
那么今天这道题的要求呢,就是实现一个函数,求N个集合元素S[]中的最大值。
梳理逻辑
做编程题目之前,最重要的就是先梳理逻辑。
用一个数组S[]来存储N个元素,然后求最大值。
我们来思考这样一个问题,求最大值是不是需要每个元素进行比较。
那既然是数组中元素的比较,则需要遍历整个数组。
然后从第一个元素开始,一个一个元素进行比较,之后将大的元素的值赋给MAX。
最终得到的MAX的值即为最大值。
还需要注意:我们可以发现最终输出结果保留两位小数。
所以在定义MAX的时候,要定义成float,也就是浮点型。
代码实现
//求自定类型元素的最大值
#include <stdio.h>
#define MAXN 10
typedef float ElementType;
ElementType Max( 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", Max(S, N));
return 0;
}
ElementType Max( ElementType S[], int N ){
float MAX;
int j=0;
for(int i=0;i<N;i ){
if(S[i]>S[j]){
j = i;
MAX = S[j];
}
if(S[j]>=S[i]){
MAX = S[j];
}
}
return MAX;
}
总结
总的来说,像这类函数题的难度都不是很大,只要理顺逻辑,然后反推回去,就可以知道具体代码怎么写了。
,