1、C+常用基本程序C+常用基本程序一、 数的各位表示方法1、 两位数的各位表示个位数的表示方法:a%10=x;例:45%10=5;十位数的表示方法:a/10=x; 例:45/10=4;2、 三位数的各位表示个位数的表示方法:a%10=x; 例:456%10=6;十位数的表示方法:a%100/10=x;例:456%100/10=5;百位数的表示方法:a/100=x; 例:456/100=4;3、 通式:k=a/10(n-1)%10A表示要求的数字,n表示要求的个数,k表示该位值。4、给出一个不大于5位的正整数,求出它是几位数及各位上的数字。#includeusing namespace std;i
2、nt main() long int n; int wei,wan,qian,bai,shi,ge; cinn; if(n99999) couterror!9999) wei=5; else if(n999) wei=4; else if(n99) wei=3; else if(n9) wei=2; else wei=1; wan=n/10000; qian=n/1000%10; bai=n/100%10; shi=n/10%10; ge=n%10; if(wei=5) coutwei,wan,qian,bai,shi,geendl; if(wei=4) coutwei,qian,bai,sh
3、i,geendl; if(wei=3) coutwei,bai,shi,geendl; if(wei=2) coutwei,shi,geendl; if(wei=1) coutwei,geendl;return 0;二、 素数的判定1、 如果数值n除了1和它自己外,不能被其他数整除,则说明n为素数。#include#includeusing namespace std;int main() int i,n,k;cinn; k=sqrt(n);for(i=2;ik) coutn是素数endl;else coutn不是素数endl; return 0;对于一个数的各个除数来说,到它的平方根位置即可
4、找出所有的除数,那么循环可以进行到这个数的平方根位置是就可以停止。再利用循环从1到平方根位置的数进行顺次整除进行判断。2、利用函数完成#include#includeusing namespace std;void p(int n) int k,i; k=sqrt(n); for(i=2;ik) cout是素数endl; else cout不是素数n; p(n); return 0;三、 奇偶数的判定利用条件判断进行判定,即if语句, if(n%2=0)则为偶数,否则为奇数#includeusing namespace std;int main() int a; cina; if(a%2=0)
5、 coutyesendl; else coutnoendl;return 0;四、 数的大小的比较(一)对三个数的排序比较1、利用if语句实现,利用中间变量进行比较。#includeusing namespace std;int main()int a,b,c,max;coutabc;if(ab) if(ac) /*对a和c进行比较*/ max=a; /*如果if语句的条件正确,执行这个语句,即如果ac,将a的值赋值给max*/ else max=c; /*如果if语句的条件不正确,执行这个语句,即如果ac) max=b; else max=c;coutmax=maxendl;return 0
6、;进行两轮比较后,即可比较完2、#includeusing namespace std;int main() int a,b,c,max; cinabc; if(ab) max=a; else max=b; if(cmax) max=c; coutmax=endl; return 0;3、利用条件表达式比较#includeusing namespace std;int main() int a,b,c,max,min; cinabc; min=ab?a:b; min=minb?a:b; max=maxc?max:c; coutmax=maxendlmin=minendl; return 0;(
7、二)对多个数的比较利用循环语句,对每个数进行顺次比较,利用中间变量,将每个数和中间变量进行比较,如果符合条件,那就刷新值,如果不符合条件,就进行下面的比较。#includeusing namespace std;int main()int temp,max=0,min,i=0; /*首先对max进行赋初值为零,然后要和下面的输入值进 行比较,不过不赋初值,就没法和下面的值进行比较*/couttemp;min=temp; /*这个语句的作用是将输入值赋值给min,因为数都是大于0的, 如果赋初值为0,那么将对最小值无法进行比较,但不影响最大值*/ for(;) if(tempmax) max=t
8、emp; /*进行条件判断,如果值大于max,就将中间变量的值赋值给max*/ if(temptemp; /*然后输入另一个数,进行下一轮的比较*/coutmax=maxtmin=minendl;return 0; 五、数的求和,平均值问题1、一般的输入数据求和#includeusing namespace std;int main() int a,sum=0,i; cina; while(a0) sum+=a; cina; coutsumendl; return 0;2、求1+2+3+n;#includeusing namespace std;int main() int n,sum,i;
9、/*计算1+2+3+.+n的值*/ sum=0; cinn; cout1+2+3+.+n的值为:; for(i=1;i=n;i+) sum+=i; coutsumendl; return 0;3、1+3+5+99的值#includeusing namespace std;int main() int n,sum,i; /*计算1+2+3+.+n的值*/ sum=0; cinn; cout1+2+3+.+n的值为:; for(i=1;i=n;i+) sum+=i; coutsumendl; return 0;4、2+4+6+100的值#includeusing namespace std;int
10、 main() int n,sum,i; /*计算1+2+3+.+n的值*/ sum=0; cinn; cout1+2+3+.+n的值为:; for(i=1;i=n;i+) sum+=i; coutsumendl; return 0;5、求1+2+3+n的和不大于1000的最大自然数n#includeusing namespace std;int main() int n,s=0; for(n=1;s=1000;n+) s+=n; coutn=nendl; return 0;6、, n从键盘输入#include /*计算sqrt(1)+sqrt(2)+.+sqrt(n)的值*/#include
11、using namespace std;int main() int n,i; double sum=0; cinn; for(i=1;i=n;i+) sum+=sqrt(n); coutsum=sumendl; return 0;7、#include #includeusing namespace std;int main() int n,i; double sum=0,s=0; cinn; for(i=1;i=n;i+) s+=sqrt(n); sum+=s; coutsum=sumendl; return 0;8、求出分数序列2/1+3/2+5/3+8/5+13/8,的前20项的和。#i
12、nclude /*计算2/1+3/2+5/3+.的前20项的值*/using namespace std;int main() int i,t; double sum=0,z,a=2,b=1; for(i=1;i=20;i+) sum+=a/b; t=a; a+=b; b=t; coutsum=sumendl; return 0;9、求出分数序列2/4+4/7+6/10+8/13+10/16+的前20项的和#include /*计算2/4+4/7+6/10+8/13.*/using namespace std;int main() int i,n; double sum,t; cinn; fo
13、r(i=1,sum=0;i=n;i+) t=(2.0*i)/(3.0*i+1); sum+=t; cout2/4+4/7+6/10+8/13.的值为:sumendl; return 0;10、求n!#includeusing namespace std;int main() int i,n,sum=1 ; cinn; for(i=1;i=n;i+) sum*=i; coutsumendl; return 0;11、1!+2!+n!,n从键盘输入#includeusing namespace std;int main() int i,n,sum=0,t=1; cinn; for(i=1;i=n;
14、i+) t*=i; sum+=t; coutsumendl; return 0;12、求s=a+aa+aa,共n个,其中n和a从键盘输入#include#includeusing namespace std;int main() int s=0,i,n,k,a,z,sum; couta; coutn; for(k=1;k=n;k+) for(i=0;ik;i+) z=a*pow(10,i); s+=z; sum+=s; couts=sendl; return 0;13、对三个数求平均数#includeusing namespace std;int main() float a,b,c,ave=
15、0; cinabc; ave=(a+b+c)/3; coutaveendl; return 0;14、对多个数的求和#includeusing namespace std;int main() float x,ave=0,i; cinx; ave=x; for(i=1;x=0;i+) cinx; ave+=x; ave/=i; coutaveendl; return 0;六、大小写字母的转换#includeusing namespace std;int main() char ch; coutch; if(ch=a&ch=z) ch+=-32; coutch=chendl; return 0;
16、#includeusing namespace std;int main() char ch; coutch; ch=(ch=a&ch=z)?ch-32:ch; coutch=chendl; return 0;七、输入一行字符,分别统计其中英文字母,数字,空格,其他字符的个数。#includeusing namespace std;int main() char c; int letters=0,space=0,digit=0,other=0; coutenter one line:=a&c=A&c=0&c=9) digit+; else other+; coutletter:letterst
17、space:spacetdigit:digittother:otherendl; return 0;八、求水仙花数,即一个三位数,各位的数字的立方和等于该数本身。#include#include /要使用数学库函数,加入此命令。using namespace std;int main() int m,a,b,c; for(m=100;m=999;m+) a=m/100; /*a为三位数百位数的值*/ b=m/10%10; /*b为三位数十位数的值*/ c=m%10; /*c为三位数个位数的值*/ if(m=pow(a,3)+pow(b,3)+pow(c,3) /pow(x,y)的作用是求xy.
18、 coutm=mendl; return 0;九、打印输出如下“*”金字塔。*#include /*打印金字塔*/using namespace std;int main() int i,j; for(i=1;i=5;i+) for(j=1;j=5-i;j+) cout ; for(j=1;j=2*i-1;j+) cout*; coutendl; return 0;十、打印出九乘九乘法表#includeusing namespace std;int main() int i,j; for(i=1;i=9;i+) for(j=1;j=i;j+) couti*j=i*jt; coutendl; r
19、eturn 0;十一、输入两个正整数,求它们的最大公约数和最小公倍数。#includeusing namespace std;int main() int p,r,n,m,temp; coutnm; if(nm) temp=n; n=m; m=temp; p=m*n; while(m!=0) r=n%m; n=m; m=r; cout最大公约数为=nendl; cout最小公倍数为=p/nendl; return 0;十二、将一个一位数组逆序输出。#includeusing namespace std;int main() int i,a10=1,2,3,4,5,6,7,8,9,10,j,t;
20、 cout原数组中的数据:n; for(i=0;i10;i+) coutait; coutendl; for(i=0;i=4;i+) j=9-i; t=ai; ai=aj; aj=t; cout逆序存放后的数据:endl; for(i=0;i10;i+) coutait; coutendl; return 0;十三、求Fibonacci数列#includeusing namespace std;int main() int i,f20=1,1; for(i=2;i20;i+) fi=fi-2+fi-1; for(i=0;i20;i+) couttfi; if(i+1)%5=0) coutend
21、l; return 0;十四、冒泡排序#includeusing namespace std;int main() int a21,i,j,t; coutInput 20 numbers:endl; for(i=1;iai; for(j=1;j=20;j+) for(i=1;iai+1) t=ai; ai=ai+1; ai+1=t; coutendlThe sorted numbers:n; for(i=1;i=20;i+) coutait; if(i%5=0) coutendl; return 0;十五、选择排序#includeusing namespace std;int main() i
22、nt a20,i,j,t,p; coutInput 20 numbers:endl; for(i=0;iai; for(i=0;i19;i+) p=i; for(j=i+1;j20;j+) if(ajap) p=j; if(p!=i) t=ai; ai=ap; ap=t; coutThe sorted numbers:n; for(i=0;i20;i+) coutait; coutendl; return 0;十六、#includeusing namespace std;int main() int x,y; cinx; if(x1) y=x; else if(x10) y=2*x-1; else y=3*x-11; couty=yendl; return 0;十七、给出一个百分制成绩,要求输出等级。成绩分为5个等级,分别为A(90100),B(8089),C(7089),D(6069),E(059)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1