C语言实用模板程序新手必看_第1页
C语言实用模板程序新手必看_第2页
C语言实用模板程序新手必看_第3页
C语言实用模板程序新手必看_第4页
C语言实用模板程序新手必看_第5页
已阅读5页,还剩22页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用标准 C语言模板程序 求两个数最大公约数 方法 辗转 相除 法 思路:两个数,用较大的数除以较小的数,所得余数与较小的数记为新的 两个数,再重复之前的过程, 直到余数为 0,这时较大的数就是最大公约数。 完整程序 #include int main() int m,n,r; scanf(%d,%d, do r=m%n; m=n; n=r; while(n); printf(greatest common divisor is %dn,m); return 0; 封装函数 int gcd(int m,int n) do r=m%n; m=n; n=r; while(n); return m;

2、 调用函数 #include int main() int m,n,r; int gcd(int m,int n); scanf(%d,%d, gcd(int m,int n); printf(greatest common divisor is %dn,m); return 0; 文档大全 实用标准 方法 更相 减损 法 思路:两个数,用较大的数减去较小的数,所得差与较小的数记为新的两 个数,再重复之前的过程,直到两个数相等,这时这两个数就是最大公约 数。 完整程序 #include int main() int m,n; scanf(%d,%d, while(m!=n) if(mn) m-

3、=n; else n-=m; printf(greatest common divisor is %dn,m); return 0; 封装函数 int gcd(int m,int n) while(m!=n) if(mn) m-=n; else n-=m; return m; 调用函数 #include int main() int m,n,r; int gcd(int m,int n); scanf(%d,%d, printf(greatest common divisor is %dn,gcd(m,n); return 0; 2 求两个数最小公倍数 思路:两个数,从较大的数开始,依次找能同

4、时整除这两个数的整数,这 个整数就是这两个数的最小公倍数。 完整程序 文档大全 实用标准 #include int main() int m,n,i; scanf(%d,%d, for(i=(mn?m:n);i+) if(i%m=0 break; return 0; 封装函数 int lcm(int m,int n) int i; for(i=(mn?m:n);i+) if(i%m=0 调用函数 #include int main() int m,n,i; int lcm(int m,int n); scanf(%d,%d, printf(lease common multiple is %d

5、,lcm(m,n); return 0; 3 判断素数 思路:从 2 开始到所求整数的开方依次求余,如果有能整除所求整数的整 数,则所求整数为合数,反之为素数。 完整程序 文档大全 实用标准 #include #include int main() int num; int i,k,flag=1; scanf(%d, k=sqrt(num); for(i=2;i=k;i+) if(num%i=0) printf(%d isnt a prime number!,num); flag=0; if(flag) printf(%d is a prime number!,num); return 0;

6、封装函数 int sushu(int num) int i,k; k=sqrt(num); for(i=2;i=k;i+) if(num%i=0) return 0; return 1; 调用函数 #include #include int main() int num; int sushu(int num); scanf(%d, if(sushu(num)=0) printf(%d isnt a prime number!,num); else printf(%d is a prime number!,num); return 0; 4 冒泡排 序(升序) 思路:N个数,每次比较相邻的两个数

7、,如果前面的数大就相互交换,这样 小的数就会像气泡一样往前冒。一趟排序完成后最后一个数最大。共进行 N-1 趟排序。 完整程序 文档大全 实用标准 #include #define N 10 int main() int numN; int i,j; int t; for(i=0;iN;i+) scanf(%d, for(i=0;iN-1;i+) for(j=0;jnumj+1) t=numj;numj=numj+1;numj+1=t; for(i=0;iN;i+) printf(%d ,numi); return 0; 封装函数 void maopao(int numN) int i,j;

8、int t; for(i=0;iN-1;i+) for(j=0;jnumj+1) t=numj;numj=numj+1;numj+1=t; 调用函数 #include #define N 10 int main() int numN; int i,j; int t; void maopao(int numN); for(i=0;iN;i+) scanf(%d, maopao(num); for(i=0;iN;i+) printf(%d ,numi); return 0; 5 选择排序(升序) 文档大全 实用标准 思路:N个数,每次从剩下的数中选择最小的数 ( 记住它的下标 )与这组数中 最前面

9、的数交换,数的个数依次减少。一趟排序完成后最前面的数最小。 共进行 N-1 趟排序。 完整程序 #include #define N 10 int main() int numN; int i,j,k; int t; for(i=0;iN;i+) scanf(%d, for(i=0;iN-1;i+) k=i; for(j=i+1;jnumj) k=j; if(k!=i) t=numk;numk=numi;numi=t; for(i=0;iN;i+) printf(%d ,numi); return 0; 封装函数 void xuanze(int numN) int i,j,k; int t;

10、for(i=0;iN-1;i+) k=i; for(j=i+1;jnumj) k=j; if(k!=i) t=numk;numk=numi;numi=t; 调用函数 文档大全 实用标准 #include #define N 10 int main() int numN; int i,j,k; int t; void xuanze(int numN); for(i=0;iN;i+) scanf(%d, xuanze(num); for(i=0;iN;i+) printf(%d ,numi); return 0; 6 折半查找(升序) 思路:N个按照从小到大排列好顺序的数, 再从中寻找一个数, 不

11、是依次扫 描每个数,而是先把这组数的中间元素拿出来与所找的数比较,如果中间 数小于所找的数,则在这组数的后半段寻找;如果中间数大于所找的数, 则在这组数的前半段寻找。找到了,输出这个数的下标,如果找不到,输 出 Not found !。 完整程序 #include #define N 10 int main() int aN,low=0,high=N-1,mid,i,key,flag=0; for(i=0;iN;i+) scanf(%d, scanf(%d, while(lowkey) high=mid-1; else low=mid+1; if(!flag) printf(Not found

12、!); return 0; 文档大全 实用标准 封装函数 int zheban(int aN,key) int low=0,high=N-1,mid; while(lowkey) high=mid-1; else low=mid+1; printf(Not found!); return -1; 调用函数 #include #define N 10 int main() int aN,low=0,high=N-1,mid,i,key,flag=0; int zheban(int aN,key) ; for(i=0;iN;i+) scanf(%d, scanf(%d, zheban(a,key)

13、; return 0; 7 找最大数 (1)两个数找最大 思路:比较两个数,输出较大者。 完整程序 #include int main() int x,y,z; scanf(%d,%d, z=xy?x:y; printf(%d,z); return 0; 文档大全 实用标准 封装函数 int max(int x,int y) int z; z=xy?x:y; return z; 调用函数 #include int main() int x,y,z; int max(int x,int y); scanf(%d,%d, printf(%d,max(x,y); return 0; (2)数组中找最

14、大 一维数组 思路:让一个变量等于数组中第一个元素,从第二数开始依次进行比较, 碰到更大的数则更改变量的值,直到全部比较完毕。 完整程序 #include #define N 10 int main() int numN; int i,max; for(i=0;iN;i+) scanf(%d, max=num0; for(i=1;iN;i+) if(maxnumi) max=numi; printf(%d, return 0; 封装函数 文档大全 实用标准 int max(int numN) int max=num0; int i; for(i=1;iN;i+) if(maxnumi) max

15、=numi; return max; 调用函数 #include #define N 10 int main() int numN; int i; int max(int numN); for(i=0;iN;i+) scanf(%d, printf(%d,max(num); return 0; 二维数组 思路:让一个变量等于数组中第一个元素,从第一个数开始依次进行比较, 碰到更大的数则更改变量的值,直到全部比较完毕。 完整程序 #include #define N 10 #define M 5 int main() int numNM; int i,j; int max; for(i=0;iN

16、;i+) for(j=0;jM;j+) scanf(%d, max=num00; for(i=0;iN;i+) for(j=0;jM;j+) if(maxnumi) max=numi; printf(%d,max); return 0; 封装函数 文档大全 实用标准 int max(int numNM) int max=num00; int i,j; for(i=0;iN;i+) for(j=0;jM;j+) if(maxnumi) max=numi; return max; 调用函数 #include #define N 10 #define M 5 int main() int numNM

17、; int i,j; int max(int numNM); for(i=0;iN;i+) for(j=0;jM;j+) scanf(%d, printf(%d,max(num); return 0; 8 数组的行列转置 思路:交换对应行列和列行的元素,注意只交换一半即可,否则相当于没 有交换。 完整程序 文档大全 实用标准 #include #define N 5 int main() int aNN; int i,j,t; for(i=0;iN;i+) for(j=0;jN;j+) scanf(%d, for(i=0;iN;i+) for(j=i+1;jN;j+) t=aij; aij=a

18、ji; aji=t; for(i=0;iN;i+) for(j=0;jN;j+) printf(%d ,aij); printf(n); return 0; 封装函数 void zhuanzhi(int aN) int i,j,t; for(i=0;iN;i+) for(j=i+1;jN;j+) t=aij; aij=aji; aji=t; 调用函数 文档大全 实用标准 #include #define N 5 int main() int aNN; int i,j; void zhuanzhi(int aN); for(i=0;iN;i+) for(j=0;jN;j+) scanf(%d,

19、zhuanzhi(a); for(i=0;iN;i+) for(j=0;jN;j+) printf(%d ,aij); printf(n); return 0; 大整数 1)大整数的输入 思路:用字符类型输入 完整程序 #include #include int main() char ch101; scanf(%s,ch);/ 或 gets(ch); return 0; 封装函数 void Input_Big_Num(char ch101) scanf(%s,ch);/ 或 gets(ch); 调用函数 文档大全 实用标准 #include #include int main() char

20、ch101; void Input_Big_Num(char ch101); Input_Big_Num(ch); return 0; (2)大整数的处理 将大整数个位到最高位放在下标从 0 开始的整形数 完整程序 #include #include int main() char ch101; int data100; int len,i; scanf(%s,ch);/ 或 gets(ch); len=strlen(ch); for(i=0;ilen;i+) datai=chlen-i-1-0; return 0; 封装函数 int Chuli_Big_Num(char ch101,int

21、data100) int len,i; len=strlen(ch); for(i=0;ilen;i+) datai=ch1len-i-1-0; return len-1; 调用函数 文档大全 实用标准 #include #include int main() char ch101=0; int data100=0; void Input_Big_Num(char ch101); int Chuli_Big_Num(char ch101,int data100); Input_Big_Num(ch); Chuli_Big_Num(ch,data); return 0; 将大整数最高位到个位放在

22、下标从 0 开始的整形数 完整程序 #include #include int main() char ch101; int data100; int len,i; scanf(%s,ch);/ 或 gets(ch); len=strlen(ch); for(i=0;ilen;i+) datai=chi-0; return 0; 封装函数 int Chuli2_Big_Num(char ch101,int data100) int len,i; len=strlen(ch); for(i=0;ilen;i+) datai=ch1i-0; return len-1; 调用函数 文档大全 实用标准

23、 #include #include int main() char ch101=0; int data100=0; void Input_Big_Num(char ch101); int Chuli2_Big_Num(char ch101,int data100); Input_Big_Num(ch); Chuli_Big_Num(ch,data); return 0; (3)大整数的输出 完整程序 #include #include int main() char ch101; int data100; int len,i; scanf(%s,ch);/ 或 gets(ch); len=s

24、trlen(ch); for(i=0;i=0;i-) printf(%d,datai); return 0; 封装函数 void Output_Big_Num(int data100,int weishu) int i; for(i=weishu-1;i=0;i-) printf(%d,datai); 调用函数 文档大全 实用标准 #include #include int main() char ch101=0; int data100=0; int weishu; void Input_Big_Num(char ch101); int Chuli_Big_Num(char ch101,in

25、t data100); void Output_Big_Num(int data100,int weishu); Input_Big_Num(ch); weishu=Chuli_Big_Num(ch,data); Output_Big_Num(data,weishu); return 0; 4)大整数的加法(两个大整数相加) 完整程序 文档大全 实用标准 #include #include int main() char ch1101=0,ch2101=0; int data1100=0,data2100=0,data3101=0; int len1,len2,len,i,jinwei=0;

26、scanf(%s,ch1);/或 gets(ch1); scanf(%s,ch2);/或 gets(ch2); len1=strlen(ch1); for(i=0;ilen1;i+) data1i=ch1len-i-1-0; len2=strlen(ch2); for(i=0;ilen2;i+) data2i=ch2len-i-1-0; for(i=0;i=0;i-) if(data3i!=0) len=i; break; for(i=len;i=0;i-) printf(%d,data3i); return 0; 封装函数 文档大全 实用标准 int Plus_Big_Num(int dat

27、a1100,int data2100,int data3101) int i,jinwei=0; for(i=0;i=0;i-) if(data3i!=0) weishu=i; break; return weishu; 调用函数 #include #include int main() char ch1101=0,ch2101=0; int data1100=0,data2100=0,data3101=0; int weishu; void Input_Big_Num(char ch101); int Chuli_Big_Num(char ch101,int data100); void O

28、utput_Big_Num(int data100,int weishu); void Plus_Big_Num(int data1100,int data2100,int data3101); Input_Big_Num(ch1); Input_Big_Num(ch2); Chuli_Big_Num(ch1,data1); Chuli_Big_Num(ch2,data2); weishu=Plus_Big_Num(data1,data2,data3); Output_Big_Num(data3,weishu); return 0; (5)大整数的乘法(一个大整数乘一个小整数) 完整程序 文档

29、大全 实用标准 #include #include int main() char ch101=0; int data100=0; int len,i,r,f=0,n; scanf(%s,ch); scanf(%d, len=strlen(ch); for(i=0;ilen;i+) datai=chlen-i-1-0; for(i=0;i100;i+) datai*=n;/ 每一位上的数分别乘以 n,并存放 for(i=0;i=10)/ 如果某一位上的数大于 10 ,则要进位 datai+1+=datai/10;/ 逢十进一 datai=datai%10;/ 进位之后,保留余数 for(i=9

30、9;i=0;i-) if(datai!=0 f=1; else if(f) printf(%d,datai); return 0; 封装函数 文档大全 实用标准 void Mutiply_BigNum_SmallNum(int Data100,int n,int *p) int i,r; for(i=0;i100;i+) Datai*=n;/ 每一位上的数分别乘以 n ,并存放 for(i=0;i=10)/ 如果某一位上的数大于 10,则要进位 Datai+1+=Datai/10;/ 逢十进一 Datai=Datai%10;/ 进位之后,保留余数 for(i=99;i=0;i-) if(Dat

31、ai!=0) *p=i+1; break; 调用函数 #include int main() char ch101=0; int data100=0; int n,weishu=0; int *p= void Input_Big_Num(char ch101); int Chuli_Big_Num(char ch101,int data100); void Output_Big_Num(int data100,int weishu); void Mutiply_BigNum_SmallNum(int Data100,int n,int *p); Input_Big_Num(ch); Chuli

32、_Big_Num(ch,data); scanf(%d, Mutiply_BigNum_SmallNum(data,n,p); Output_Big_Num(data,*p); return 0; (6)大整数的乘法(一个大整数乘一个大整数) 文档大全 实用标准 完整程序 #include #include int main() int data1100=0,data2100=0; int r200=0; char ch1101=0,ch2101=0; int i,j,k=0; int len1,len2; gets(ch1); gets(ch2); len1=strlen(ch1); len

33、2=strlen(ch2); for(i=0;ilen1;i+) data1i=ch1len1-i-1-0; for(i=0;ilen2;i+) data2i=ch2len2-i-1-0; for(i=0;ilen2;i+) for(j=0;jlen1;j+) rj+i+=data1j*data2i; for(i=0;i=0;i-) if(ri!=0) break; for(i=i;i=0;i-) printf(%d,ri); return 0; 封装函数 文档大全 实用标准 int Mutiply_BigNum_BigNum(int data1100,int data2100,int r20

34、0,int len1,int len2) int i,j; for(i=0;ilen2;i+) for(j=0;jlen1;j+) rj+i+=data1j*data2i; for(i=0;i=0;i-) if(ri!=0) break; return i; 调用函数 文档大全 实用标准 #include #include int main() int data1100=0,data2100=0; int r200=0; char ch1101=0,ch2101=0; int i,j,k=0; int len1,len2; void Input_Big_Num(char ch101); int

35、 Chuli_Big_Num(char ch101,int data100); void Output_Big_Num(int data100,int weishu); int Mutiply_BigNum_BigNum(int data1100,int data2100,int r200,int len1,int len2); Iuput_Big_Num(ch1); Input_Big_Num(ch2); len1=Chuli_Big_Num(ch1,data1)+1; len2=Chuli_Big_Num(ch2,data2)+1; i=Mutiply_BigNum_BigNum(data

36、1,data2,r,len1,len2); for(i=i;i=0;i-) printf(%d,ri); return 0; 7)大整数的除法(一个大整数除以一个小整数且能整只保留整数) 完整程序 文档大全 实用标准 #include int main() long int Data100=0,result100=0; int i,k,flag=0,len; char ch101=0; scanf(%s,ch); len=strlen(ch); scanf(%d, for(i=0;ilen;i+) Datai=chi-0; for(i=0;ilen;i+) resulti=Datai/k; D

37、atai+1+=Datai%k*10; for(i=0;ilen;i+) if(resulti!=0) flag=1; if(flag) printf(%d,resulti); return 0; 封装函数 int Division_Big_Num(int Data100,int result100,int k,int len) int i,flag=0; for(i=0;ilen;i+) Datai=chi-0; for(i=0;ilen;i+) resulti=Datai/k; Datai+1+=Datai%k*10; return len; 调用函数 #include #include int main() 文档大全 实用标准 char ch101=0; int data100=0,result100=0; int weishu,flag=0,k,len; void Input_Big_Num(char ch101); int Chuli2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论