- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二维数组字数组
1.3 二维数组与多维数组
1.3.1 二维数组一般形式:
类型说明符 数组名 [常量表达式1][常量表达式2]
【例】float a[3][4],b[5][10]
注意:千万不要写成 a[3,4]
1.3.2 二维数组初始化:
1)分行给二维数组初始化
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}
2)一一对应赋值
int a[3][4]={ 1,2,3,4, 5,6,7,8, 9,10,11,12}
3)对部分元素赋值
int a[3][4]={{1},{5},{9}};……对矩阵的第一列赋值,每行第一个值为1,5,9,其余为0
1 0 0 0
5 0 0 0
9 0 0 0
int a[3][4]={{1},{0,6},{0,0,11}};
1 0 0 0
0 6 0 0
0 0 11 0
int a[3][4]={{1},{5,6}};……第三行不赋值
1 0 0 0
5 6 0 0
0 0 0 0
int a[3][4]={{1},{},{9}};……第二行不赋值
1 0 0 0
0 0 0 0
9 0 0 0
4)如果对所有元素都赋值,第一维可以省略,第二维必须有
【例】
int a[3][4]={ 1,2,3,4, 5,6,7,8, 9,10,11,12}
也可以写成:int a[][4]={ 1,2,3,4, 5,6,7,8, 9,10,11,12}
数组初始化的快捷方法——memset函数(内存中连续空间的初始化)
int a[10];
for (i = 0; i 10; i++)
a[i] = 0;
和
#includestring.h
memset(a, 0, sizeof(a));
如定义一个二维数组int?a[25][25];如何用memset对其初始化为0;
memset( a, 0, sizeof( a ) );
1.3.3 二维数组应用举例
【例】将一个二维数组行列互换,存到另外一个二维数组中
如
1 2 3
a=
4 5 6
1 4
b= 2 5
3,6
main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
for(i=0;i=1;i++)
{
for(j=0;j=2;j++)
{printf(“%5d”,a[i][j]);
b[j][i]=a[i][j];
}
printf(“\n”);
}
for(i=0;i=2;i++)
{
for(j=0;j=1;j++) printf(“%5d”,b[i][j]);
printf(“\n”);
}
}
【例】有一个3×4矩阵a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}},编程求出值最大的元素及其所在的行号、列号
main()
{
int i,j,raw,colum,max;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max=a[0][0];
for(i=0;i=2;i++)
for(j=0;j=3;j++)
if(a[i][j]max) {max= a[i][j];raw=i;colum=j;}
printf(“%d,%d,%d”, a[i][j],raw,colum);
}
【二维、多维数组训练】
1.求一个3*3矩阵两条对角线之和
2.利用二维数组打印杨辉三角(10行)
3.打印“魔方阵”。魔方阵是指每一行的和、每一列的和、对角线的和均相等。
例如三阶魔方阵:
8 1 6
3 5 7
4 9 2
要求打印出1到n2的自然数构成的魔方阵
3.找出一个二维数组的鞍点。即该位置上的数在该行上最大,在该列上最小。也可能没有鞍点。
1.4 字符数组
1.4.1 字符数组的一般形式:
char c[10]
1.4.2 字符数组的初始化
1)逐个字符赋值给数组元素
【例】char c[10]={‘i’,’ ’,’a’,’m’,’ ’,’h’,’a’,’p’,’p’,’y’};
2)若字符个数大于数组长度,按语法错误处理;若字符个数小于数组长度,将这些字符赋值给前面那些元素,其余元素为空(即‘\0’,ASCII码 0表示空操作)
3)如果数组长度与字符个数相同,数组长度可以省略(不用人工数)
【例】char c[]={‘i’,’ ’,’a’,’m’,’ ’,’h’,’a’,’p’,’p’,’y’};
4)可以定义二维字符数组
char diamond[5][5]={{‘ ‘,’ ‘,’*’},{‘ ‘,’*’,’ ‘,’*’}
您可能关注的文档
最近下载
- Unit 5 We’re family 第1课时(Get ready)(课件)外研版(三起)(2024)英语三年级上册.pptx
- 中国民间传说:田螺姑娘.ppt
- 医院岗位风险分级监管制度.docx VIP
- 八年级班级工作计划第一学期.pdf VIP
- 甘肃省平凉崆峒区2024年中考联考数学试卷含解析.doc
- 硅片加工表面抛光.ppt
- 正大猪三宝饲料推广会流程和操作实务.ppt
- 安徽省腰椎间盘突出症分级诊疗指南(2015年版)安徽省医学会(发布时间:2016-01).pdf VIP
- 国家食品安全抽样检验抽样单&填表说明.doc
- TASCAM达斯冠专业音响CD-RW901MKII说明书用户手册(1).pdf
文档评论(0)