《高级语言程序设教学课件》第6章 数组.ppt

《高级语言程序设教学课件》第6章 数组

* 字符串长度函数strlen (String Length) 格 式:strlen(字符数组) 功 能:计算字符串长度 返回值:返回字符串实际长度,不包括\0在内 例 对于以下字符串,strlen(s)的值为: (1)char s[10]={A,\0,B,C,\0,D}; (2)char s[]=\t\b\\\0will\n; (3)char s[]=\x69\082\n; 答案:1 3 1 * 字符串输入输出函数: 包含文件是 stdio.h 字符串处理函数: 包含文件是 string.h * * 强调循环控制变量的上下界 * * 强调循环控制变量的上下界 * * * * * * * * 使用%c输入时也要一次性将字符数组输入。 这种I/O方式与数字类型的数组的I/O方式相同。 * * 在字符串末尾系统自动赋结束标志‘\0’ 由于系统在字符串常量的末尾自动加上一个’\0’(NULL)作为结束符,所以对于字符数为n的字符串,其占用内存为n+1字节空间。根据这一特点,使用字符串方式赋初值时,一定要使数组长度大于字符串实际长度。 使用字符串给二维数组初始化时,一个字符串对应数组的一行。 ? * * 1)讲解步骤:找出s1的第一个“\0”的位置。然后将s2中的字符逐个复制到s1后面。 * * 所谓字符串处理函数是对以’\0’为结尾的C字符串进行比较、复制和连接等处理的C函数库提供的函数。 所有函数都包含在头文件string.h中 * 【例6-12】求N×N阶二维数组的主对角线元素之和 sum=0; for(i=0; in; i++) { sum = sum + a[i][i]; } * 【例】求N×N阶二维数组每一行元素之和 数组 a 数组 b b[0] b[1] b[2] * 【例】求N×N阶二维数组每一行元素之和 int b[3]={0} ; for(i=0; i3; i++) for(j=0; j4; j++) b[i]+=a[i][j]; for(i=0; i3; i++) printf(%5d, b[i]); b[0] b[1] b[2] * main() {int a[6][6]={0},i,j; for(i=0;i6;i++) //主对角线和第0列赋1 { a[i][0]=1; a[i][i]=1;} for(i=2;i6;i++) //其他元素 ai,j = ai-1,j-1 + ai-1,j for(j=1;ji;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i6;i++) { for(j=0;j=i;j++) printf(%4d,a[i][j]); printf(\n); } } 【例】 杨辉三角形 1 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 * 在程序中使数组元素获得值的方法 说明数组的同时进行初始化 缺点:数据相对固定 用scanf语句由用户输入 缺点:当数组规模较大时,需要读入的数据会很多 利用循环变量为数组赋值 int a[2][3]; for(i=0;i2;i++) for (j=0;j3;j++) scanf(“%d”,a[i][j]); k=1; for(i=0; i4; i++) for(j=0; j4; j++) a[i][j]= k++; * * 术语 含义 下标规律 主对角线 从矩阵的左上角至右下角的连线 i=j 上三角 主对角线以上的部分 i≤j 下三角 主对角线以下的部分 i≥j 副对角线 从矩阵的右上角至左下角的连线 i+j=N-1 矩阵的术语与二维数组下标的对应关系 * 例 在程序中使数组元素获得值的方法 初始化,缺点是数据相对固定 利用scanf 当数组元素有规律时,利用循环变量为数组赋值 k=1; for(i=0; i4; i++) { for(j=0; j4; j++) a[i][j] = k++; } for(i=0; i2; i++) for(j=0; j3; j++) scanf(%d, a[i][j]); * 多 维 数 组 int c[100][100][100] int b[2][3][4] 0 b[0][0][0] 1 b[0][0][1] 2 b[0][0]

文档评论(0)

1亿VIP精品文档

相关文档