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]