- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
思考题:
什么是二维数组,什么情况下使用二维数组
带有两个下标的数组称为
2.二维数组如何定义,float score[34][7]是什么意思,score[10][2]是什么意思
3.如何为二维数组提供值
4.读案例分析程序执行过程
练习题:
1.在C语言中,二维数组的定义方式为:类型说明符 数组名[_常量表达式一____][___常量表达式二__]。
2.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]的值为_{1,2,0}_______。
3.写出运行结果
#include stdio.h
main()
{
int a[4][4]={{1,2,-3,-4}, {0,-10,-1,14}, {-2,23,0,24}, {-3,42,-30,0}};
int i,j,s=0;
for (i=0;i4;i++)
for (j=0;j4;j++)
{
if (a[i][j]0) continue;
if (a[i][j]==0) break;
s+=a[i][j];
}
printf(%d\n,s);
}
4.下面程序可求出矩阵a的主对角线上的元素之和,请填空。? #include stdio.h
void ?main()?
??{
int?a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;?
?? for(i=0;i3;i++)?
??? for(j=0;j3;j++)?
????? if(【1】)?
sum=sum+【2】;?
printf(sum=%d\n,sum);?
}?
5.从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。
若数组a的各元素值为:?,编写一子函数,使其与main函数共同实现对各行求和并按如下格式输出: 。2所示。在逻辑上以两名学生为行、以四科成绩为列构成一个表格。数据元素score[1][1],有两个下标,第1个表示“行”,第2个表示“列”,也就是说score[1][1]代表第2行第2列那个逻辑单元。二维数组同一维数组内存地址是连续的。二维数组也可以看做是多个一维数组。
表8.2 二维数组内存表示
C语言成绩 外语成绩 数学成绩 操作系统成绩 第一名学生成绩 score[0][0] score[0][1] score[0][2] score[0][3] 第二名学生成绩 score[1][0] score[1][1] score[1][2] score[1][3] 8.3.1 二维数组的定义
1.二维数组定义
二维数组定义的一般形式为:
类型说明符 数组名[行下标][列下标];
2.二维数组的引用
二维数组元素的引用形式为:
数组名[行下标][列下标];
(做中学 1 定义一个2行4列的二维数组并求和
源码:
/* p8_10.c */
/* 二维数组元素引用*/
#include stdio.h
int main() /* 主函数 */
{
int score[2][4]; /* 定义二维数组 行下标与列下标都从0开始*/
int i,j;
int sum=0;
int rowSum=0;
for(i=0;i2;i++) /* 为二维数组元素提供值*/
{
for(j=0;j4;j++)
scanf(%d,score[i][j]);
}
sum=score[1][1]+score[0][3];/*计算2行2列与1行列两个元素的和*/
for (j=0;j4;j++)
rowSum=rowSum+score[0][j];/* 计算第1行和 */
printf(sum=%d\n,sum);
printf(rowSum=%d\n,rowSum);
return 0;
}
源码说明:
(1)int score[2][4];定义一批变量,数组元素名,如表8.2所示。同一维数组不同的是二维数组有两个下标:行下标、列下标。其他用与一维数组元素、普通变量相同。由于有两个下标,所以源码中用双循环控制下标,外循环控制行下标,内循环表示列下标。
(2)sum=score[1][1]+score[0][3];是计算第2行第2列和第1行第4列元素的和。rowSum=rowSum+score[0][j];是计算第1行各元素的和,行下标不变,列下标用一个循环变量j控制。相当于:rowSum=score[0][0]+ score[0][1]+ score[0][2]+ score
文档评论(0)