- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言上知识复习解读
* 四、数组各元素分类统计 字符数组:统计字母、数字字符的个数;A、E、I、O、U、 等出现的次数。 数值数组:统计大于某个数、能被某个数整除、正负数个。 定义数组(如 char str[80];int num[N];) 输入各元素的值 字符数组: 数值数组: 循环 str[i]!=‘\0’ 循环 i=0 ~N-1 str[i]分类计数 num[i]符合计数条件? 符合则计数 * 例4:输入一行英文文本(最长80),分别统计文本中字母、数字、空格字符个数及所有字符个数。 #include stdio.h main( ) { int i, l, n, s, all; char str[80], t; l=n=s=all=0; gets(str); for(i=0; (t=str[i])!=\0; i++) { if(t=At=Z||t=at=z) l++; else if(t=0t=9) n++; else if(t== ) s++; all++; } printf(l=%d,n=%d,s=%d,all=%d\n,l,n,s,all); } * 五、两个数组对应元素比较大小 定义两个数组s1、s2,构造循环,对s1[i]、s2[i]进行比较。 两个字符串比较: for(i=0;s1[i]==s2[i];i++) if(s1[i]==‘\0’)break;) * 例5:按标准函数比较规则,自编程实现两字串比较。 #include stdio.h main() { static char s1[10], s2[10]; int i, r; clrscr( ); printf(\tInput string 1:); gets(s1); printf(\tInput string 2:); gets(s2); for(i=0; s1[i]==s2[i]; i++) /*下标变量比较*/ if(s1[i]==\0) break; r=s1[i]-s2[i]; printf(\ts1=%s,s2=%s,r=%d\n, s1, s2, r); getch( ); } * 六、插入、逆序存放、排序 插入 有序数组中插入一个数,保持数组有序 设数组为a,已有数据。 1 输入要插入的数,存入num; 2 将num与数组元素逐个比较(从a[0]开始,循环比较),找到插入位置; 3 将插入点后面的各元素逐个后移。 * 例6.1 已有一个排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。习题7.4 插入n: 13 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 7 9 10 12 15 17 24 32 45 方法1: 1)首先确定插入位置,可从头或尾顺序判断查找; 2)将插入点后的各元素依次后移一个位置; 从头:na[i]? i: 0,1,2… a[j+1]=a[j]; j: 8,7,6…i 32 24 17 15 45 13 * main( ) {int a[10]={7,9,10,12,15,17,24,32,45}, i, j,num; printf(Insert number:); scanf(%d,num); for(i=0;i=8;i++) /*判断插入位置*/ if(numa[i]); else break; /*退出时i即为插入位置*/ for(j=8;j=i;j--) a[j+1]=a[j]; /*从后面依次后移*/ a[i]=num; ? /*插入*/ for(i=0;i10;i++) printf(%6d, a[i]); printf(\n); } * 7 9 10 12 15 17 2
文档评论(0)