word; clear: both; text-indent: 2em; color: rgb(24, 30, 51); font-family: PingFangSC, 微软雅黑, 黑体, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255);">引用二维数组的元素
word; clear: both; text-indent: 2em; color: rgb(24, 30, 51); font-family: PingFangSC, 微软雅黑, 黑体, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255);">
数组名[下标][下标]
【例5-6】学生成绩处理
假设第一小组5个学生3门课的成绩,如下表5-1所示,求全组平均成绩以及各门课的平均成绩。
表5-1 学生成绩表
学生 英语 数学 C语言
Stu1 80 77 76
Stu2 61 35 67
Stu3 56 75 70
Stu4 89 90 85
Stu5 85 67 73
分析:设定数组a,5行3列,用来存放学生的成绩,设定一维数组v,长度为3,用来存放每门课的总成绩。
程序的算法流程图如图5-6所示。
图5-6 例5-6算法流程图
根据流程图写出的程序如下:
#include <stdio.h>
int main()
{
int i,j,s=0,average,v[3],a[5][3];
printf("input score:\n");
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
{
scanf("%d",&a[j][i]); /*输入学生的成绩*/
s=s+a[j][i];/*累加求出每一列上的所有元素之和*/
}
v[i]=s/5; /*每门课的平均成绩*/
s=0;
}
average=(v[0]+v[1]+v[2])/3; /*数组v中所有元素的平均值赋值给average*/
printf("English languag:%d\nMath:%d\nc languag:%d\n",v[0],v[1],v[2]);
printf("total:%d\n", average );
return 0;
}
程序运行结果:
input score:
56 78 92 23 89↙
59 78 98 68 45↙
75 80 78 90 67↙
English languag:67
Math:69
c languag:78
total:71