4.2 二维数组与序列统计
二维数组可以表示表格、矩阵、棋盘。它有行和列两个下标。
c
int grid[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
printf("%d\n", grid[1][2]); // 6grid[1][2] 的含义是:先取第 1 行,再在这一行里取第 2 列。两个下标都从 0 开始。
矩阵加法可以用嵌套循环完成。外层循环控制行,内层循环控制列。
矩阵加减法要求两个矩阵形状相同。如果 和 都是 矩阵,那么结果矩阵也是 。所谓"一一对应",就是第 行第 列只和另一个矩阵的第 行第 列计算。
矩阵一一对应运算
131012+007521=138533
131012-007521=13-6-5-11
c
int A[3][2] = {
{1, 3},
{1, 0},
{1, 2}
};
int B[3][2] = {
{0, 0},
{7, 5},
{2, 1}
};
int C[3][2];
printf("矩阵加法\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
C[i][j] = A[i][j] + B[i][j];
printf("%3d", C[i][j]);
}
printf("\n");
}运行结果:
text
矩阵加法
1 3
8 5
3 3统计数组时,常见任务包括求和、平均值、最大值、最小值。
c
int scores[] = {88, 91, 76, 95, 83};
int n = sizeof(scores) / sizeof(scores[0]);
int max = scores[0];
for (int i = 1; i < n; i++) {
if (scores[i] > max) {
max = scores[i];
}
}sizeof(scores) / sizeof(scores[0]) 只适合在数组仍然是完整数组的作用域内使用。
正在加载交互实验...
正在加载概念检查...
正在加载本节练习...