C语言二维数组的意义 初始化 赋值
发布时间:2022-07-01 12:08:03 所属栏目:语言 来源:互联网
导读:上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组。在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以确定它在数组中的位置。本节只介绍二维数组,多维数组可由二维数组类推而得到。
上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组。在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以确定它在数组中的位置。本节只介绍二维数组,多维数组可由二维数组类推而得到。 二维数组的定义 二维数组定义的一般形式是: dataType arrayName[length1][length2]; 其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。 我们可以将二维数组看做一个 Excel 表格,有行有列,length1 表示行数,length2 表示列数,要在二维数组中定位某个元素,必须同时指明行和列。例如: int a[3][4]; 定义了一个 3 行 4 列的二维数组,共有 3×4=12 个元素,数组名为 a,即: a[0][0], a[0][1], a[0][2], a[0][3] a[1][0], a[1][1], a[1][2], a[1][3] a[2][0], a[2][1], a[2][2], a[2][3] 如果想表示第 2 行第 1 列的元素,应该写作 a[2][1]。 【实例1】一个学习小组有 5 个人,每个人有 3 门课程的考试成绩,求该小组各科的平均分和总平均分。 -- Math C English 张涛 80 75 92 王正华 61 65 71 李丽丽 59 63 70 赵圈圈 85 87 90 周梦真 76 77 85 对于该题目,可以定义一个二维数组 a[5][3] 存放 5 个人 3 门课的成绩,定义一个一维数组 v[3] 存放各科平均分,再定义一个变量 average 存放总平均分。最终编程如下: #include <stdio.h> int main(){ int i, j; //二维数组下标 int sum = 0; //当前科目的总成绩 int average; //总平均分 int v[3]; //各科平均分 int a[5][3]; //用来保存每个同学各科成绩的二维数组 printf("Input score:n"); for(i=0; i<3; i++){ for(j=0; j<5; j++){ scanf("%d", &a[j][i]); //输入每个同学的各科成绩 sum += a[j][i]; //计算当前科目的总成绩 } v[i]=sum/5; // 当前科目的平均分 sum=0; } average = (v[0] + v[1] + v[2]) / 3; printf("Math: %dnC Languag: %dnEnglish: %dn", v[0], v[1], v[2]); printf("Total: %dn", average); return 0; } 运行结果: Input score: 80 61 59 85 76 75 65 63 87 77 92 71 70 90 85↙ Math: 72 C Languag: 73 English: 81 Total: 75 程序使用了一个嵌套循环来读取所有学生所有科目的成绩。在内层循环中依次读入某一门课程的各个学生的成绩,并把这些成绩累加起来,退出内层循环(进入外层循环)后再把该累加成绩除以 5 送入 v[i] 中,这就是该门课程的平均分。外层循环共循环三次,分别求出三门课各自的平均成绩并存放在数组 v 中。所有循环结束后,把 v[0]、v[1]、v[2] 相加除以 3 就可以得到总平均分。 (编辑:爱站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐