划句顾 发表于 2021-5-19 13:11:09

C语言:用二维数组记录学生成绩,并算出平均分

本帖最后由 划句顾 于 2021-5-26 10:52 编辑

某学习小组有4名同学,学习了5门课程,求每个同学的平均分和每门课程的平均分。
算法分析:
         ①定义一个二维数组score(最后一行和最后一列存放平均数)
         ②为(4*5)数组赋值;
         ③求行平均数,把平均数存入score中(i=0-3);
         ④求列平均数,把平均数存入score中(j=0-4);
         ⑤输出整个数组。


/****************************************************
@fuction:求每个同学的平均分和每门课程的平均分
@time   :2021/4/29
@author :LaoGu
*****************************************************/
#include<stdio.h>

int main()
{
        int a={0},i,j;//a={0},数组a的值全为0,这样后面给i赋值时,可以保证a=0; i为行,j为列
        int sum1 = 0, sum2 = 0,ave1 = 0,ave2 =0;
/*****
分别输入a的值
        *****/
        printf("输入a:\n");       
      for(i = 0;i < 4; i++)
                for(j = 0;j < 5;j++)
                        scanf("%d",&a);
/*****
计算每个同学分数的平均值
        *****/       
        for(i =0;i < 4;i++)
        {
                for(j = 0;j < 5;j++)
                {
                        sum1 += a;
                }
                ave1 = sum1 / 5;
                a = ave1;   //最后的格来放成绩的平均值
                sum1 = 0;      //置零是为了重新记录每个同学的成绩,让同学的初始成绩为0
        }
/*****
计算同一科目分数的平均值
        *****/
        for(j =0;j < 5;j++)
        {
                for(i = 0;i < 4;i++)
                {
                        sum2 += a;
                }
                ave2 = sum2 / 4;
                a = ave2;   //最后的格来放成绩的平均值
                sum2 = 0;   //置零是为了重新记录每个科目的成绩,让科目平均值的初始值为0
        }
/*****
分别输出a的值
        *****/
        for(i = 0;i < 5; i++)
        {
                for(j = 0;j < 6;j++)
                        printf("%5d",a);
       
          printf("\n");
        }
        return 0;
}
页: [1]
查看完整版本: C语言:用二维数组记录学生成绩,并算出平均分