《高级语言程序计教学课件》第6章 数组3.pptVIP

  • 4
  • 0
  • 约1.42万字
  • 约 65页
  • 2018-12-02 发布于浙江
  • 举报

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

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

* 比较字符串的大小: strcmp(A,B) strcmp(a,A) strcmp(ABC,AB) strcmp(computer,compare) strcmp(36,3654) 值=A-B 0 值=a-A 0 值=C-\0 0 值=u-a 0 值=\0-5 0 * 字符串长度函数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 * * 强调循环控制变量的上下界 播放:网易公开课:哈佛大学:计算机科学CS50 * 注意:数组上溢的问题 for( i=p; i6; i++ ) 改为 for( i=p; i=6; i++ ) a[i]=a[i+1]; 则会出现a[6]=a[7]的情况,而a[7]中有数据,系统不提示有错! * * * * * * * * * 使用%c输入时也要一次性将字符数组输入。 这种I/O方式与数字类型的数组的I/O方式相同。 * * 在字符串末尾系统自动赋结束标志‘\0’ 由于系统在字符串常量的末尾自动加上一个’\0’(NULL)作为结束符,所以对于字符数为n的字符串,其占用内存为n+1字节空间。根据这一特点,使用字符串方式赋初值时,一定要使数组长度大于字符串实际长度。 使用字符串给二维数组初始化时,一个字符串对应数组的一行。 ? * * 1)讲解步骤:找出s1的第一个“\0”的位置。然后将s2中的字符逐个复制到s1后面。 * * 所谓字符串处理函数是对以’\0’为结尾的C字符串进行比较、复制和连接等处理的C函数库提供的函数。 所有函数都包含在头文件string.h中 * 4、打印出转置后的矩阵 printf(“转置矩阵:\n); for(i=0; in; i++) { for(j=0; jn; j++) printf(%4d, a[i][j]); printf(\n); } } * 【例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)

1亿VIP精品文档

相关文档