c语言数组初始化省略行维度,C语言第5章-3课时.ppt

C语言第5章-3课时

任务一 学习目标 任务二 认识数组 任务三 数组应用之一 任务四 数组应用之二 任务五 数组应用之三 任务七 知识扩展之一 任务八 知识扩展之二 数组从维度上可分为一维数组和二维数组,一维可以处理线性数据,二维可以处理二维表格、矩阵等 数组从数据元素存储类别上可分为数值数组、字符数组、结构体数组等 阅读以下程序 1、 二维数组的定义 数据类型 数组名[行数][列数] 例如: char ch[3][6]; int a[2][5], b[10][20]; float x[3][5], y[15][30]; 一般格式: 图5-10 C语言中数组元素的排列是以行为优先的。 即:靠右的下标先变化 注意:计算机的物理内存是线性的,无论是几维数组,所有元素只能逐个连续存放。因此,按照行优先的原则,对于定义int a[2][5]; 来说,各元素的内存物理映像如图5-10所示。 二维数组的元素总个数 行数×列数 2、二维数组的初始化 数据类型 数组名[行数][列数]= 0号行数据 , 1号行数据 ,……, 最后一行数据 ; 顺序初始化 数据类型 数组变量名[行数][列数]= 初始数据 ; 分行初始化: 分行:int a[2][3] 1, 2, 3 , 4, 5, 6 ; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 对数组元素全部赋值 1 2 3 4 5 6 分行: int a[2][3] 1,2 , 4 ; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 对数组元素部分赋值 1 2 0 4 0 0 分行: int a[ ][3] 1 , 4 ; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 省略第一维大小 1 0 0 4 0 0 顺序: int a[2][3] 1,2,3,4,5,6 ; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 对数组元素全部赋值 1 2 3 4 5 6 顺序: int a[2][3] 1,2,3,4 ; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 对数组元素部分赋值 1 2 3 4 0 0 顺序: int a[ ][3] 1,2,3,4 ; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 省略第一维大小 1 2 3 4 0 0 3.二维数组数据元素的引用 数组名[行号][列号] 例如: int x, a[2][5] 1,2,3,4,5 , 6,7,8,9,10 ; x a[1][3]; 一般格式: 与引用一维数组元素相同,二维数组元素的引用也可以看成是对一个普通变量的引用,可以初始化,可以参与组成表达式,也可作为输入或输出项。但也要注意行下标和列下标的范围,不要越界引用。 案例分析 【案例5-10】定义一个二维数组,接收从键盘输入的整数数据,并以矩阵格式输出。 #include #defineM2/*行数,用符号常量M表示*/ #defineN5/*列数,用符号常量N表示*/ main int a[M][N];int i, j; for i 0; i M; i++ for j 0; j N; j++ printf "请输入a[%d][%d]的值:", i, j ; scanf "%d", &a[i][j] ; for i 0; i M; i++ for j 0;j N;j++ printf "%3d",a[i][j] ; printf "\n" ; 【案例5-12】班级成绩统计。 某班本学期成绩单如表5-6所示,编程统计每个学生的总成绩和每门课程的总成绩。 73 82 75 82 81 wang 67 80 87 85 75 zhang 体育 计算机 物理 英语 高数 姓名 140 162 162 167 156 393 73 82 75 82 81 394 67 80 87 85 75 表5-7 〖分析〗原来的成绩数据看作2×5的矩阵,在程序中定义一个3×6的二维数组,课程总成绩放在数组最后一行,每个学生总成绩分别存放对应行上最后一列。 #include m

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值