目录
练习1:一个学习小组有 5 个人,每个人有三门课的考试成绩。求全组分科的平均成绩和 各科总平均成绩。
二维数组的定义和引用
1、二维数组的定义
2、二维数组元素的引用
练习1:一个学习小组有 5 个人,每个人有三门课的考试成绩。求全组分科的平均成绩和 各科总平均成绩。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i, j; //二维数组下标
int sum = 0; //当前科目的总成绩
int average; //总平均分
int v[3]; //各科平均分
int a[3][5]; //用来保存每个同学各科成绩的二维数组,三门学科,五个同学。
printf("请输入各科学生的成绩:\n");
for (i = 0; i < 3; i++)
{
printf("\n一门学科数入5次成绩\n");
if (i == 0)
printf("数学学科:");
if (i == 1)
printf("语文学科:");
if (i == 2)
printf("英语学科:");
for (j = 0; j < 5; j++)
{
scanf("%d", &a[i][j]); //输入每个同学的各科成绩
sum += a[i][j]; //计算当前科目的总成绩(sum)
}
v[i] = sum / 5; // 当前科目的平均分,用总的成绩除以5
sum = 0; // 把当前科目总成绩清0
}
average = (v[0] + v[1] + v[2]) / 3;
printf("\n数学: %d\n语文: %d\n英语: %d\n", v[0], v[1], v[2]);
printf("平均分: %d\n", average);
return 0;
}
二维数组的初始化
int a[3][4] = {
{0, 1, 2, 3} , /* 初始化索引号为 0 的行 */
{4, 5, 6, 7} , /* 初始化索引号为 1 的行 */
{8, 9, 10, 11} /* 初始化索引号为 2 的行 */
};
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
访问二维数组的元素
int val = a[2][3];
练习2:获取每行每列数组元素的值
#include<stdio.h>
int main(void)
{
int i, j;
int arr[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("| arr[%d][%d] = %d |", i, j, arr[i][j]);
}
printf("\n");
}
return 0;
}
对二维数组初始化还需注意几点
int arr[3][3] = {{1,2},{2,3},{3,4}};
1 2 0
2 3 0
3 4 0
int arr[3][3] = {{1,2,3},{2,3,4},{3,4,5}};
还可以写成为是:
int arr[][3] = {{1,2,3},{2,3,4},{3,4,5}};