网站大量收购独家精品文档,联系QQ:2885784924

[工学]C语言典型例题.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]C语言典型例题

例17:编写函数,用冒泡法对数组从小到大排序 main() { int x[10], i; void sort( int a[], int n ) for(i=0; i 10; i++) scanf(%d,x[i]); sort( x, 10); for(i = 0; i 10; i++) printf(%d ,x[i]); printf( \n ); } void swap( int *p1, int *p2 ) { int t; t = *p1; *p1 = *p2; *p2 = t; } void sort( int a[], int n ) { int i, j; for(i=0; i n-1; i++) for(j= 0; j n-1-i; j++) if (a[j] a[j+1]) swap(a[j],a[j+1]); } 一类递归问题 数学表达: C语言表达: 阶乘 1 fac(int n) n!= { if(n==1) return 1; n*(n-1)! else return n*fac(n-1); } 连加 1 sum(int n) sn= { if(n==1) return 1; n+sn-1 else return n+sum(n-1); } 例:求字符串长度 int my_strlen(char *str) { if(*str==‘\0’) return 0; else return (1+my_strlen(str+1)); } 例:求 N 层嵌套平方根 double y(double x, int n) { if(n==0) return 0; else return (sqrt(x+y(x, n-1)); } 例23:编写函数,在一个已从小到大排序的数组中查找一个指定的数,如果找到,返回指向数组中该数的指针,否则返回空指针。 int *find(int *a, int n, int data) /* 数组a长度n待查数data */ { int *p=a, *q=a+n, *r; while ( p q ) /* 待查找区不为空时 */ { r = p + (q-p)/2; /* 待查找区的中点位置 */ if ( *r==data ) return r; /* 如找到,返回该指针 */ else if ( *r data ) p = r + 1; /* 比中点大,在后半区 */ else q = r; /* 比中点小,在前半区 */ } return NULL; /* 没找到,返回空指针 */ } main() { int x[]={11,22,33,44,55,66,77,88,99,100}, d, *p; scanf( %d, d ); /* 输入要查找的数 */ p = find( x, 10, d ); /* 调用查找,结果赋值给p */ if ( p != NULL ) /* 判断是否找到数 */

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档