一维数组int score[10]存放了10个学生的成绩,用函数统计出平均分并返回其值,同时计算在平均分以上(含)的人数、最高分、最低分。10人的分数在主函数中输入,函数中按要求统计出结果,函数返回平均分,人数、最高分、最低分用全局变量处理,所有结果在主函数中输出。数组用指针处理。函数定义: float ave_score(int *array, int n) { …… ……} 指针array指向数组的首地址,n是学生人数。函数内部对数组元素的访问用指针处理。
2条回答 默认 最新
qfl_sdu 2021-05-23 23:23关注代码如下,如有帮助,请采纳一下,谢谢。
#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; }评论 打赏 举报解决 2无用 1