- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
? strcat() 函数 ? strcpy() 函数 ? strcmp() 函数 ? strlen() 函数 练习: ?练习一:找错误。 ?练习二:写出程序的输出。 7.4.5 字符串数组举例 例:字符串输入。 程序如下: #include stdio.h main( ) { char s[20],s1[20]; scanf(“%s”,s); printf(“%s \n”,s); scanf(“%s%s”,s,s1); /*从键盘上输入字符串,将How给s,将do给sl*/ printf(“s=%s,sl=%s”,s,s1); puts(“\n”); gets(s); puts(s); } 程序运行结果: How do you do? ↙ How How do you do? ↙ S=How,S1=do How do you do? ↙ How do you do? 例中使用了scanf( )与gets( )两个函数来实现字符串的输入,要注意它们的差别,根据需要来选用。 例:从键盘上输入两个字符串,若不相等,将短的字符串连接到长的字符串的末尾并输出。 #include stdio.h #include string.h main( ) { char s1[80],s2[80]; gets(s1); gets(s2); if (strcmp(s1,s2)!=0) if (strlen(s1)strlen(s2)) { strcat(s1,s2); puts(s1); } else { strcat(s2,s1); puts(s2); } } 输入:you ↙ Thank ↙ 输出:Thank you §7.5 数组作为函数的参数 7.5.1 数组元素做函数实参 数组元素作函数的参数与一般变量作函数参数相同,要注意的是,数组元素作参数时候,值的传递方式仍是单向的值传递。 由于这方面在函数一章讲述较多,这里重点讲第二节。 7.5.2 将数组名作函数参数 此时形参与实参都应使用数组名,分别在被调函数与主调函数中说明数组类型,并且要求实参与形参数组的类型相同,维数相同。在进行参数传递时是“地址传递”,即实参数组的首地址传给形参数组,而不是将实参数组的每个元素一一送给形参的各数组元素。 思路: 把相邻两数比较,若前面数大,则两数交换位置,直至最后一个元素被处理,最大的元素就“沉”到最下面,即在最后一个元素位置。这样,如有n个元素,共进行n-1轮,每轮让剩余元素中最大的元素“沉”到下面,从而完成排序。 程序如下: 下面给出一个程序设计中的经典例子。 例:用冒泡法将10个数按由小到大排序。 #include stdio.h #define N 80 main( ) { int a[N]; int i, m; void sort(int b[ ], int k); void print(int b[ ], int k); printf(“\n Input m(80): ”); scanf(“%d”, m); /*输入要排序的元素的个数*/ for(i=0; im; i++) scanf(“ %d ”, a[i]); /*输入m个元素到数组a中*/ sort(a,m); print(a,m); } void sort(int b[],int k) { int i, j, t, flag; for(j=0; jk-1; j++) { flag=0; for(i=0; ik-j-1; i++) if(b[i]b[i+1]) { t=b[i]; /*相邻元素交换位置*/ b[i]=b[i+1]; b[i+1]=t; flag=1; /*有元素交换位置,标志置1*/ } if(flag==0) break; /*没有交换元素,结束循环*/ } } void print(int b[],int k) { int i; for(i=0; ik; i++) { if(i%4==0) putchar(\n); printf(“%-6d”, b[i]); } } 输入:Input m(80): 8↙ 1 20 -4 0 81 53 44 -24↙ 输出:-24 -4 0 1 20 44 53 81 例7.17 输出如下的杨辉三角形(输出不超过10行)。 1 1 1 1 2 1
文档评论(0)