本任务学习几个应用二维数组的实例,进一步加深同学们对二维数组的理解。
【例6-10】求出一个3行4列二维数组中的最大值及最大值的行、列下标。
仍使用“打擂台”的方法,源程序如下:
使用数组初始化方便我们调试程序,调试完毕后如果需要输入数据,则将输入部分的注释符号去掉即可。
【例6-11】有3行4列的二维数组,请将其每一行放入一个4行3列的二维数组的每一列中并输出两个数组。
矩阵是一种非常常用的数学工具,其定义形式就是按行和列排列的一组数据。用二维数组存储一个矩阵是一种非常自然的选择,本题目对应的就是矩阵的转置运算。由于一些学生还没有学习矩阵的相关知识,题目给出了另一种描述形式。
假设两个数组分别为a和b,此题目要求将a的行转换成b的列,实质上就是对b中的每一个单元b[i][j]用a[j][i]赋值。
源程序如下:(www.xing528.com)
【例6-12】假设某班级共有5个同学,每个同学有语文、数学、英语三门课程的成绩,请编程计算每一个同学的平均成绩和每门课程的平均成绩。
依据前边分析,定义二维数组保存学生成绩,每一行的平均值是代表一个同学的平均成绩,每一列的平均值代表每门课程的平均成绩,源程序如下:
【程序分析】
(1)程序中主要表现计算过程,因此没有对数组采用输入的方式,而是直接使用了初始化。其初始化形式如下:
(2)数组定义为6行4列,用每一行的最后一个单元a[i][3]保存第i个同学的总成绩,每一列的最后一个单元a[5][j]保存第j门课程的总成绩。由于数组初始化时已经将第5行和第3列全部初始化为0,因此在累加求和过程中不用再对a[i][3]和a[5][j]初始化。
(3)输出时用1.0*a[i][3]/3求出平均成绩,乘以1.0是要将总成绩先转换成double数据,否则输出的平均成绩将是一个整型值。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。