收藏 分销(赏)

C语言常用十种典型自编函数汇集.doc

上传人:s4****5z 文档编号:9438666 上传时间:2025-03-26 格式:DOC 页数:5 大小:73.50KB
下载 相关 举报
C语言常用十种典型自编函数汇集.doc_第1页
第1页 / 共5页
C语言常用十种典型自编函数汇集.doc_第2页
第2页 / 共5页
点击查看更多>>
资源描述
/*1、素数是指只能被自己和1整除的数*/ #include <math> int prime(int n) { int m; for(m=2;m<=sqrt(n);m++) if(n%m==0) return 0; return 1; } /*2、求逆序数通用函数。说明第二参数b是指变换方式:0常规;2-4不管输入位数,只要小于或等于它,输出凑足相应位数,例如b=3;输入1,返回100*/ long retrograde(long a, int b) { long m=a,y=0; int i; switch(b) { caes 2: return m+(m/10-m%10)*(1-10); case 3: return m+(m/100-m%10)*(1-100); case 4: return m+(m/1000-m%10)*(1-1000)+(m/100)%10*(10-100)-(m/10)%10*(10-100); case 0: while(m) {y=y*10+m%10; m/=10;} } return y; } ★ 例子:(b=0适用于回文数判别;b=3、4适用于陷阱数求取) #include <stdio.h> long retrograde(long a, int b) { long m=a,y=0; int i; switch(b) { case 2: return m+(m/10-m%10)*(1-10); case 3: return m+(m/100-m%10)*(1-100); case 4: return m+(m/1000-m%10)*(1-1000)+(m/100)%10*(10-100)-(m/10)%10*(10-100); case 0: while(m) {y=y*10+m%10; m/=10;} } return y; } void main() { long a=12345,c=1; printf("b=2 is %d\n",retrograde(c,2)); printf("b=3 is %d\n",retrograde(c,3)); printf("b=4 is %d\n",retrograde(c,4)); printf("b=0 is %d\n",retrograde(a,0)); } /*3、寻找最大、最小通用函数(judge为1时,求最大值;0时求最小值) /*4、求最大公约数 欧几里得算法:*/ int gcd( int m, int n) { int t,r; if(m<n) {t=m; m=n; n=t;} while(n!=0) { r=m%n; m=n; n=r; } return m; } /*5、求最小公倍数 算法:两数之积除以最大公约数所得的值即为最小公倍数*/ int gcd( int m, int n) { int t,r; while(n!=0) { r=m%n; m=n; n=r; } return (m*n)/m; } /*6、整数的各位分离成一维整型数组元素*/ void inte(long n,int a[], int *k) { long m;k=0; m=n; while(m>0) { a[k++]=m%10; m=m/10; } } /*7、一维整型数值数组元素逆置 第一个与最后一个交换,第二个与倒数第二个交换…..*/ void exchange(int a[], int n) { int i, t; for(i=0;i<n/2;i++) { t=a[i]; a[i]=a[n-i-1]; a[n-i-1]=t; } } 如要将字符串倒序排列函数改为: #include <stdio.h> #include <string.h> void exchange(char *a) { int i ,n; char t; n=strlen(a); for(i=0;i<=n/2;i++) { t=a[i]; a[i]=a[n-i-1]; a[n-i-1]=t; } } void main() { char g[]="abcdefgh"; printf("before:%s\n",g); exchange(g); printf("after:%s\n",g); } /*8、求阶乘*/ long func(int n) { int i; long t=1; for(i=2;i<=n;i++) t*=i; return t; } /*9、简单起泡法通用函数:以Fibonnacii数列中求质数后要求排序输出为例。judge=1时为升序;judge=0时为降序*/ /*10、求“正整型数”(包括1,但不包括数本身)的真因子及其之和通用函数*/ #include <stdio.h> int fac(int n, int b[], int *p) { int k=0,s,i; s=n; for(i=2;i<=s;i++) if(s%i==0) {b[k++]=s/i;} /*真因子数为k*/ *p=k; s=0; for(i=0;i<k;i++) s=s+b[i]; return s; } void main() { int i,x,m,n,d[10]; scanf("%d",&x); m=fac(x,d,&n); /*返回真因子之和m,真因子数组d[],真因子数n*/ for(i=0;i<n-1;i++) printf("%d+",d[i]); printf("%d=",d[n-1]); printf("%d\n", m); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服