6章数组.pptVIP

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6章数组

6.4.2 二维数组的访问 【例6-9】 有一个3×4的数组stu,存储的是3个学生的4次考试成绩,求每个学生4次考试的平均成绩和所有学生所有考试成绩的最高分。 算法分析:定义一个3行4列的二维数组,其中,数组的每一行对应一个学生,每一列对应一次考试成绩。分别用函数avg()求每个学生的平均成绩和max()最高成绩来完成。 max()函数函数头:int max(const int max_grades[ ][N], int s, int t ),max_grades是形参数组,第一维长度省略。 s和t是两个整型形参。其中,s接收学生人数,t接收的考试次数。max()函数的主要功能是遍历二维数组的所有数组元素,找出最大数。 avg ()函数头:double avg( const int avg_grade[], int t),avg_grade是形参数组。整型形参t接收的实参是考试次数。这个函数的主要功能是对每个学生的4次考试成绩求和,然后计算出平均分,返回给主调函数。 6.4.2 二维数组的访问 #include stdio.h #define M 3 #define N 4 /*函数原型*/ int max(const int max_grades[ ][N], int s, int t ) ; double avg( const int avg_grade[], int t) ; int main(void) { const int stu [M][N]={{89,76,84,69},{77,65,73,61},{90,83,74,80}}; /*定义只读数组stu并初始化 */ int i,j; /*i表示学生计数器, j表示考试成绩计数器*/ printf(输出数组:\n); printf( [0] [1] [2] [3] ); 6.4.2 二维数组的访问 for(i=0;iM;i++){ printf(\nstu[%d] , i ); for (j=0; jN; j++){ printf(%-5d,stu[i][j]); } /*结束内循环*/ } /*结束外循环*/ printf(\n); printf (最高分是:%d \n, max(stu, M, N)); for(i=0;iM;i++){ /* 计算每个学生的平均成绩 */ printf(第%d个学生的平均成绩是 %.2f \n,i+1, avg(stu[i],N)) ; } return 0; } 6.4.2 二维数组的访问 int max(const int max_grades[ ][N], int s, int t ) { int i,j ; /*循环计数器*/ int high=0; /*定义最高分变量, 设置初值为0*/ for (i=0; is; i++) { /*外循环用于控制学生*/ for (j=0; jt; j++) { /*内循环用于控制考试成绩*/ if (max_grades[i][j]high) { /*当前数组元素的值大于最高分变量的值*/ high= max_grades[i][j]; } }/*结束内循环*/ }/*结束外循环*/ return high; /*返回最高分*/ } 6.4.2 二维数组的访问 double avg( const int avg_grade[], int t) { int i ; /*循环计数器*/ int total=0 ; /*定义考试成绩之和变量*/ for(i=0; it; i++) { /*开始循环, 对每个学生4个考试成绩进行求和*/ total+= avg_grade[i] ; } /*结束循环*/ return (double) total/t ; /*返回平均分*/ } 实参数组stu[i]的地址传递给形参数组avg_grade。 二维数组实际上是这样一个一维数组:它的每个数组元素是一个一维数组,二维数组中的一行就相当于一个一维数组。 6.4 二维数组 6.4.3 二维数组应用举例 1.矩阵 矩阵是一种典型的二维数组,代表同类数据的二维集合。 【例6-10】 将一个3行4列的矩阵行列互换,计算并输出其转置矩阵。 算法分析:矩阵的行列互换,即求

文档评论(0)

118books + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档