资源描述:
《实验七二维数组程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验七二维数组程序设计一、实验学时2学时二、实验目的(一)掌握二维数组的定义、赋值及输入输出的方法;(二)掌握少二维数组有关的算法如查找、矩阵转置等;(三)掌握在程序设计中使用数组的方法。数组是非常重要的数据类型,循环中使用数组能更好地发挥循环的作用,有些问题不使用数组难以实现。(四)掌握在VC++环境下上机调试二维数组程序的方法,并对结果进行分析。三、预习要求熟悉二维数组的定义、引用和相关算法(求最人值、最小值)的程序设计,同时要掌握在程序设计中利用双重循环来实现二维数组的输入和输出。四、实验内容
2、(一)二维数组的初始化,即给二维数组的各个元素赋初值。下面的几个程序都能为数组元素赋值,请输入程序并运行,比较这些赋值方法有何异同。1.在定义数组的同时对数纟R元素分行初始化。/*c7-l.c*//*二维数组的初始化(分行)*/#include"stdio.h〃voidmain(){inti,j,a[2][3]={{1,2,3},{4,5,6}};for(i=0;i<2;i++){for(j=0;j<3;j++)printf(/?%d”,a[i][j]);printf("");}}2.不分行的初
3、始化。把{}小的数据依次赋值给数组的各个元素。/*c7-2.c*//*二维数组的初始化(不分行)*/elude"stdio.h"voidmain(){inti,j,a[2][3]={1,2,3,4,5,6};for(i=0;i<2;i++){for(j=0;j<3;j++)printf(,z%d“,a[i][j]);printf("");}1.为部分数组元索初始化。如:数组定义语句为:inti,j,a[2][3]={{1,2},{4}};2.可以省略第一维的定义,但不能省略第二维的定义。如:in
4、ta[][3]={1,2,3,4,5,6};依次运行以上程序,比较这四种定义方式的不同之处。(一)求一个4X4矩阵的主对角线元索之和,填空并运行程序。编程提示:1.定义一个4行4列的二维数组°。2.可利用双重循环的嵌套为该二维数组的各个数组元素赋值,-般格式为:for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);3.用循环求和,并注意矩阵対角上线元素的特征是:行下标和列下标相同。4.输出对角线元素Z和。/*c7-3.c*//*求一个4X4矩阵的主
5、対角线元素之和*/#include"stdio.h"voidmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,sum二0;for(i=0;i<4;i++);/*把对角线元索的和放在变量sum中*/printf(/,sum=%d,/,sum);/*输出对角线元素的和*/(二)打印出以卜-的杨辉三角(耍求打印出10ft)11112113311464115101051161520156117213535217118285
6、670562881193684126126843691编程提示:1.杨辉三角的特点是:第1列和对角线上的元素为1,其它各元素的值都是上一行上一列元素和上一行前一列元素之和。2.定义一个10X10的二维数组a。1.先用一个单层循环为第一列和对角线上的元素赋值。如:for(i=0;i<10;i++){a[i][i]=l;a[i][0]=l;}4.再用一个双重循环嵌套为具它元索赋值。for(;i<10;i++)for(;;j++)a[i][j]=a[i-l][j-l]+a[i-l][j];想一想,划横线的
7、地方应当填入什么内容?5•计算Z后再用一个双重循坏恢套输出杨辉三角。注意各层循环变量的初值和终值怎样确定。(一)统计3个学生,每个学牛4门课程的考试成绩,耍求输出每个学生的总成绩,每个学生的平均成绩,3个学生的总平均成绩。填空并运行程序。/*c7—4.c*//*学牛成绩处理*/#include"stdio.h"voidmain(){intstu[3][4],i,j,t[3];floatsum二0,a[3];for(i=0;i<3;i++)for(j=0;j<4;j++)scanf&stu[i][j]
8、);for(i=0;i<3;i++){t[i]=0;for(j=0;j<4;j++){sum+=stu[i][j];t[i]+=stu[i][j];}printf("%-6cT,t[i]);/*输入三个子生的4门课程考试成绩*//*sum存放三个学生的4门课程总成绩*//*t[订存放第i个学生的4门课程成绩*//*输出第i个学生的总成绩*/printf2frT,a[i]);/*a[i]存放第i个学生的4门课程平均成绩*/}printf(''average=%.2f