C++常用基本程序.docx
- 文档编号:27778135
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:29
- 大小:29.05KB
C++常用基本程序.docx
《C++常用基本程序.docx》由会员分享,可在线阅读,更多相关《C++常用基本程序.docx(29页珍藏版)》请在冰豆网上搜索。
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)%10
A表示要求的数字,n表示要求的个数,k表示该位值。
4、给出一个不大于5位的正整数,求出它是几位数及各位上的数字。
#include
usingnamespacestd;
intmain()
{
longintn;
intwei,wan,qian,bai,shi,ge;
cin>>n;
if(n>99999)cout<<"error!
"< elseif(n>9999)wei=5; elseif(n>999)wei=4; elseif(n>99)wei=3; elseif(n>9)wei=2; elsewei=1; wan=n/10000; qian=n/1000%10; bai=n/100%10; shi=n/10%10; ge=n%10; if(wei==5) cout< if(wei==4) cout< if(wei==3) cout< if(wei==2) cout< if(wei==1) cout< return0; } 二、素数的判定 1、如果数值n除了1和它自己外,不能被其他数整除,则说明n为素数。 #include #include usingnamespacestd; intmain() { inti,n,k; cin>>n; k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0)break; if(i>k) cout< else cout< return0; } 对于一个数的各个除数来说,到它的平方根位置即可找出所有的除数,那么循环可以进行到这个数的平方根位置是就可以停止。 再利用循环从1到平方根位置的数进行顺次整除进行判断。 2、利用函数完成 #include #include usingnamespacestd; voidp(intn) { intk,i; k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0) break; if(i>k) cout<<"是素数"< else cout<<"不是素数"< } intmain() { intn; cin>>n; p(n); return0; } 三、奇偶数的判定利用条件判断进行判定,即if语句, if(n%2==0)则为偶数,否则为奇数 #include usingnamespacestd; intmain() { inta; cin>>a; if(a%2==0) cout<<"yes"< else cout<<"no"< return0; } 四、数的大小的比较 (一)对三个数的排序比较 1、利用if语句实现,利用中间变量进行比较。 #include usingnamespacestd; intmain() { inta,b,c,max; cout<<"请输入三个整数a,b,c: "; cin>>a>>b>>c; if(a>b) if(a>c)/*对a和c进行比较*/ max=a;/*如果if语句的条件正确,执行这个语句,即如果a>c,将a的值赋值给max*/ else max=c;/*如果if语句的条件不正确,执行这个语句,即如果a<=c,将c的值赋值给max*/ else if(b>c) max=b; else max=c; cout<<"max="< return0; } 进行两轮比较后,即可比较完 2、#include usingnamespacestd; intmain() { inta,b,c,max; cin>>a>>b>>c; if(a>b) max=a; else max=b; if(c>max) max=c; cout<<"max="< return0; } 3、利用条件表达式比较 #include usingnamespacestd; intmain() { inta,b,c,max,min; cin>>a>>b>>c; min=a a: b; min=min min: c; max=a>b? a: b; max=max>c? max: c; cout<<"max="< return0; } (二)对多个数的比较 利用循环语句,对每个数进行顺次比较,利用中间变量,将每个数和中间变量进行比较,如果符合条件,那就刷新值,如果不符合条件,就进行下面的比较。 #include usingnamespacestd; intmain() { inttemp,max=0,min,i=0;/*首先对max进行赋初值为零,然后要和下面的输入值进 行比较,不过不赋初值,就没法和下面的值进行比较*/ cout<<"Pleaseinputscores: "; cin>>temp; min=temp;/*这个语句的作用是将输入值赋值给min,因为数都是大于0的, 如果赋初值为0,那么将对最小值无法进行比较,但不影响最大值*/ for(;;) { if(temp<0)break;/*进行条件判断,如果值为负数的时候, 结束整个循环,负责继续执行下面的语句*/ if(temp>max)max=temp;/*进行条件判断,如果值大于max,就将中间变量的值赋值给max*/ if(temp cin>>temp;/*然后输入另一个数,进行下一轮的比较*/ } cout<<"max="< return0; } 五、数的求和,平均值问题 1、一般的输入数据求和 #include usingnamespacestd; intmain() { inta,sum=0,i; cin>>a; while(a>0) { sum+=a; cin>>a; } cout< return0; } 2、求1+2+3+…+n; #include usingnamespacestd; intmain() { intn,sum,i;/*计算1+2+3+...+n的值*/ sum=0; cin>>n; cout<<"1+2+3+...+n的值为: "; for(i=1;i<=n;i++) sum+=i; cout< return0; } 3、1+3+5+…+99的值 #include usingnamespacestd; intmain() { intn,sum,i;/*计算1+2+3+...+n的值*/ sum=0; cin>>n; cout<<"1+2+3+...+n的值为: "; for(i=1;i<=n;i++) sum+=i; cout< return0; } 4、2+4+6+…+100的值 #include usingnamespacestd; intmain() { intn,sum,i;/*计算1+2+3+...+n的值*/ sum=0; cin>>n; cout<<"1+2+3+...+n的值为: "; for(i=1;i<=n;i++) sum+=i; cout< return0; } 5、求1+2+3+…n的和不大于1000的最大自然数n #include usingnamespacestd; intmain() { intn,s=0; for(n=1;s<=1000;n++) s+=n; cout<<"n="< return0; } 6、 n从键盘输入 #include (1)+sqrt (2)+...+sqrt(n)的值*/ #include usingnamespacestd; intmain() { intn,i; doublesum=0; cin>>n; for(i=1;i<=n;i++) sum+=sqrt(n); cout<<"sum="< return0; } 7、 #include #include usingnamespacestd; intmain() { intn,i; doublesum=0,s=0; cin>>n; for(i=1;i<=n;i++) { s+=sqrt(n); sum+=s; } cout<<"sum="< return0; } 8、求出分数序列2/1+3/2+5/3+8/5+13/8…,的前20项的和。 #include usingnamespacestd; intmain() { inti,t; doublesum=0,z,a=2,b=1; for(i=1;i<=20;i++) { sum+=a/b; t=a; a+=b; b=t; } cout<<"sum="< return0; } 9、求出分数序列2/4+4/7+6/10+8/13+10/16+…的前20项的和 #include usingnamespacestd; intmain() { inti,n; doublesum,t; cin>>n; for(i=1,sum=0;i<=n;i++) { t=(2.0*i)/(3.0*i+1); sum+=t; } cout<<"2/4+4/7+6/10+8/13...的值为: "< return0; } 10、求n! #include usingnamespacestd; intmain() { inti,n,sum=1 ; cin>>n; for(i=1;i<=n;i++) sum*=i; cout< return0; } 11、1! +2! +…+n! ,n从键盘输入 #include usingnamespacestd; intmain() { inti,n,sum=0,t=1; cin>>n; for(i=1;i<=n;i++) { t*=i; sum+=t; } cout< return0; } 12、求s=a+aa+…+a…a,共n个,其中n和a从键盘输入 #include #include usingnamespacestd; intmain() { ints=0,i,n,k,a,z,sum; cout<<"请输入a: "; cin>>a; cout<<"请输入n: "; cin>>n; for(k=1;k<=n;k++) { for(i=0;i { z=a*pow(10,i); s+=z; } sum+=s; } cout<<"s="< return0; } 13、对三个数求平均数 #include usingnamespacestd; intmain() { floata,b,c,ave=0; cin>>a>>b>>c; ave=(a+b+c)/3; cout< return0; } 14、对多个数的求和 #include usingnamespacestd; intmain() { floatx,ave=0,i; cin>>x; ave=x; for(i=1;x>=0;i++) { cin>>x; ave+=x; } ave/=i; cout< return0; } 六、大小写字母的转换 #include usingnamespacestd; intmain() { charch; cout<<"请输入一个字母ch: "; cin>>ch; if(ch>='a'&&ch<='z') ch+=-32; cout<<"ch="< return0; } #include usingnamespacestd; intmain() { charch; cout<<"请输入一个字母ch: "; cin>>ch; ch=(ch>='a'&&ch<='z')? ch-32: ch; cout<<"ch="< return0; } 七、输入一行字符,分别统计其中英文字母,数字,空格,其他字符的个数。 #include usingnamespacestd; intmain() { charc; intletters=0,space=0,digit=0,other=0; cout<<"enteroneline: : "< while((c=getchar())! ='\n')//getchar的作用是输入一个字符。 {if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++; elseif(c=='') space++; elseif(c>='0'&&c<='9') digit++; else other++; } cout<<"letter: "< "< "< "< return0; } 八、求水仙花数,即一个三位数,各位的数字的立方和等于该数本身。 #include #include usingnamespacestd; intmain() { intm,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)的作用是求x^y. cout<<"m="< } return0; } 九、打印输出如下“*”金字塔。 * *** ***** ******* ********* #include usingnamespacestd; intmain() { inti,j; for(i=1;i<=5;i++) { for(j=1;j<=5-i;j++) cout<<""; for(j=1;j<=2*i-1;j++) cout<<"*"; cout< } return0; } 十、打印出九乘九乘法表 #include usingnamespacestd; intmain() { inti,j; for(i=1;i<=9;i++) {for(j=1;j<=i;j++) cout< cout< return0; } 十一、输入两个正整数,求它们的最大公约数和最小公倍数。 #include usingnamespacestd; intmain() { intp,r,n,m,temp; cout<<"Pleaseentertwonumbersn,m: "; cin>>n>>m; if(n {temp=n;n=m;m=temp;} p=m*n; while(m! =0) {r=n%m;n=m;m=r;} cout<<"最大公约数为="< cout<<"最小公倍数为="< return0; } 十二、将一个一位数组逆序输出。 #include usingnamespacestd; intmain() { inti,a[10]={1,2,3,4,5,6,7,8,9,10},j,t; cout<<"原数组中的数据: \n"; for(i=0;i<10;i++) cout< cout< for(i=0;i<=4;i++) {j=9-i; t=a[i];a[i]=a[j];a[j]=t; } cout<<"逆序存放后的数据: "< for(i=0;i<10;i++) cout< cout< return0; } 十三、求Fibonacci数列 #include usingnamespacestd; intmain() { inti,f[20]={1,1}; for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) { cout<<'\t'< if((i+1)%5==0) cout< } return0; } 十四、冒泡排序 #include usingnamespacestd; intmain() { inta[21],i,j,t; cout<<"Input20numbers: "< for(i=1;i<=20;i++) cin>>a[i]; for(j=1;j<=20;j++) for(i=1;i<=20-j;i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } cout< \n"; for(i=1;i<=20;i++) { cout< if(i%5==0) cout< } return0; } 十五、选择排序 #include usingnamespacestd; intmain() { inta[20],i,j,t,p; cout<<"Input20numbers: "< for(i=0;i<20;i++) cin>>a[i]; for(i=0;i<19;i++) { p=i; for(j=i+1;j<20;j++) if(a[j] p=j; if(p! =i) {t=a[i]; a[i]=a[p]; a[p]=t; } } cout<<"Thesortednumbers: \n"; for(i=0;i<20;i++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 常用 基本 程序