Pineapple7 2021-05-23 23:09 采纳率: 0%
浏览 611

一维数组int score[10]存放了10个学生的成绩,用函数统计出平均分并返回其值.

一维数组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;
     }
    评论

报告相同问题?