二维数组和多维数组(1) 数学上的矩阵以及反映现实数据的表格等,通常用二维数组来表示。

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Puts(数组名); 一次输出一个字符串且自动换行。
字符数组和字符串(2)
• 例1:统计在aa字符串中‘a’到‘z’出现 的次数,结果放在数组bb中输出。 (L5_7_0)
• 例7.8(p138)统计一行文字中单词的个数。
11
几个函数
几个函数: (1)strcpy(字符数组名 , “字符串”);(例L5—7)
int a [3] [4] ={3, 8, 9, 10, 2, 5, -3, 5, 7, 0, -1, 4}; for (j=0; j<3; j+ = (m-1))
for (k=0; k<4; k++) sum = sum+a[j][k] ;
for (k=0; k<n; k=k+n-1) for (j=1; j<m-1; j++) sum = sum+a [j][k];
符赋值,其余补\0; 若{ }提供的初值个数大于数组的长度,则按语法错误处
理;
若{ }提供的初值个数等于数组的长度,则在定义时可以 省略数组长度,系统会自动根据初值个数来确定数组 长度;
无初始化时数组的赋值: char a [9]; a [0] = ‘C’; a [1] = ‘o’; … a [8] =‘\0’;
scanf(“%s” , a); 注:a前不加& 符号,为什么?
输入 Computer 回车(系统自动 加入 ‘\0’)。
printf(“%c” , a […] ); 输出一个字符。
printf(“%s” , a); 输出一个字符串。
字符数组和字符串(2)
gets( ) 和 puts ( )函数: 当用scanf函数输入字符串时,若输入 “I am a student” 该怎么办?因为scanf函数以空格或回车键作为结束符, 这时,可用 gets(数组名)来输入。 如:char a[15]; gets( a ); 它仅以回车符作结束。
}
当堂练习:求两个矩阵的和矩阵。
字符数组和字符串(1)
二、字符数组和字符串
定义: char 数组名 […]; 初始化:char c [9] = {‘C’, ‘o’, ‘m’, ‘p’, ‘u’, ‘t’, ‘e’, ‘r’ }; 也可以这样初始化
char a [9] = {“Computer”}; 则在末尾自动加‘\0’ 。 若{ }提供的初值个数小于数组的长度,则顺次将这些字
a[1][0] a[1][1] a[1][2] 注意:行、列下标均从0开始,下标不要越界
二维数组和多维数组(1)
3、初始化: int a[2] [3] ={{1, 2, 3}, {4, 5, 6}}; 或 int a [2] [3] ={1, 2, 3, 4, 5, 6};
问题: 若 int a [2] [3] ={1, 2, 3, 4} 怎样描述每个元素 的值? 若 int a [2] [3] ={{1, 2}, {3}} 又如何? int a [ ] [3] ={1, 2, 3, 4, 5, 6} 省略的数值是多少? int a [2] [ ] ={1, 2, 3, 4, 5, 6} 这样描述正确吗?
二维数组和多维数组(2)
例1:二维数组的使用。(例L5-4) 例2:求二维数组的最大元素及其所在的行、列坐标。
(例L5—5) 例3: 求一个3×4矩阵的所有靠外侧的元素值之和。(例
L5_6_new)
3 8 9 10
a= 2 5 -3 5
7 0 -1 4
二维数组和多维数组(3)
main ( ) { int sum,j,k;
二维字符数组
1、二维字符数组初始化: char str [3] [6]={“China”, “Japan”, “Korea”}; 2、二维字符数组输入: For(i=0;i<3;i++) gets(str[i]); 3、二维字符数组输出: For(i=0;i<3;i++) printf(“%s” , str [i] ); 输出Japan。
C
O
内M
存 存
P
Βιβλιοθήκη Baidu
放 示
U
意T

E
R
\0
8
字符数组和字符串(2)
不是定义时,不能 a [9] = “Computer”,C语言 不允许用赋值表达式向数组整体赋值。
字符串的输入:
char a [9]; for (j=0; j<9; j++)
scanf(“%c” , &a [j]);
字符串的输出:
可用 char a [9] ;
几个函数
(4)strlen(字符串) 测试字符串的长度。(不包括字符
‘\0’) main( ) { char str [ ] = “How do you do!”;
printf(“%d” , strlen(str));
} 结果输出14 (5)strlwr(字符串):将字符串中大写变小写 (6)strupr(字符串):小写变大写。
将字符串拷贝到字符数组中且自动加‘ \0 ’ 。 也可 strcpy(字符数组名1 ,字符数组名2 ); 但不能用 str1 = str2 的赋值方式,除非是指针变量。 (2)strcat (字符数组名1 ,字符数组名2);(例L5—8) 连接两个字符串成为一个字符串。 (3)strcmp(字符串1 ,字符串2);(例L5—9) 比较两个字符串。 字符串1 = 字符串2 则返回值为0 字符串1 > 字符串2 则返回值为一正整数 字符串1 < 字符串2 则返回值为一负整数
二维数组和多维数组(1)
4、数组元素在内存中的存放形式: 例:INT A[3][3]={0,1,2,3,4,5,6,7,8};
A[0][0] 0 A[0][1] 1 A[0][2] 2 A[1][0] 3 A[1][1] 4 A[1][2] 5 A[2][0] 6 A[2][1] 7 A[2][2] 8
二维数组和多维数组(1)
• 数学上的矩阵以及反映现实数据的表格 等,通常用二维数组来表示。
1
23
4
56
7
89
89 12 23 89 89 90 89 88 77 79 90 89 87 87 67 34 56 67 78 98
二维数组和多维数组(1)
一、二维数组和多维数组 1、定义:
数据类型 数组名 [ 常量1 ] [ 常量2 ]; 例:int a[2][3] 注意:不论是什么,其元素个数的表达式不能用 变量表示。 比如:错误的定义方法: int a[n][m]; 2、引用: 数组名 [ 下标 ] [下标 ] 例:上述数组a的元素为a[0][0] a[0][1] a[0][2]
相关文档
最新文档