一维数组int score[10]存放了10个学生的成绩,用函数统计出平均分并返回其值,同时计算在平均分以上(含)的人数、最高分、最低分。10人的分数在主函数中输入,函数中按要求统计出结果,函数返回平均分,人数、最高分、最低分用全局变量处理,所有结果在主函数中输出。数组用指针处理。函数定义: float ave_score(int *array, int n) { …… ……} 指针array指向数组的首地址,n是学生人数。函数内部对数组元素的访问用指针处理。
代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
int g_max = 0;
int g_min = 0;
int g_nmb = 0;
float ave_score(int *array, int n)
{
float sum = 0.0;
for (int i = 0; i < n; i++)
sum += *(array+i);
float avg = sum / n;
g_max = array[0];
g_min = array[0];
for (int i = 0; i < n; i++)
{
if (*(array+i) > avg)
{
g_nmb++;
}
if (*(array+i) > g_max)
{
g_max = *(array+i);
}
if (*(array+i) < g_min)
{
g_min= *(array+i);
}
}
return avg;
};
int main()
{
int score[10] = {1,2,3,4,5,6,7,8,9,10};
float f = ave_score(score,10);
printf("avg=%.2f;大于avg的数量=%d; max=%d,min=%d\n",f,g_nmb,g_max,g_min);
getchar();
getchar();
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632