C++常用基本程序_第1页
C++常用基本程序_第2页
C++常用基本程序_第3页
C++常用基本程序_第4页
C++常用基本程序_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

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位的正整数,求出它是几位数及各位上的数字。#include<iostream>using

2、 namespace std;int main()long int n;int wei,wan,qian,bai,shi,ge;cin>>n;if(n>99999) cout<<"error!"<<endl;else if(n>9999) wei=5;else if(n>999) wei=4;else if(n>99) wei=3;else if(n>9) wei=2;else wei=1;wan=n/10000;qian=n/1000%10;bai=n/100%10;shi=n/10%10;ge=n%10;

3、if(wei=5) cout<<wei<<","<<wan<<","<<qian<<","<<bai<<","<<shi<<","<<ge<<endl;if(wei=4) cout<<wei<<","<<qian<<","<<bai<<&quo

4、t;,"<<shi<<","<<ge<<endl;if(wei=3) cout<<wei<<","<<bai<<","<<shi<<","<<ge<<endl;if(wei=2) cout<<wei<<","<<shi<<","<<ge<<endl;if

5、(wei=1)cout<<wei<<","<<ge<<endl;return 0;二、 素数的判定1、 如果数值n除了1和它自己外,不能被其他数整除,则说明n为素数。#include<iostream>#include<cmath>using namespace std;int main() int i,n,k;cin>>n; k=sqrt(n);for(i=2;i<=k;i+) if(n%i=0) break; if(i>k) cout<<n<<&quo

6、t;是素数"<<endl;else cout<<n<<"不是素数"<<endl; return 0;对于一个数的各个除数来说,到它的平方根位置即可找出所有的除数,那么循环可以进行到这个数的平方根位置是就可以停止。再利用循环从1到平方根位置的数进行顺次整除进行判断。2、利用函数完成#include<iostream>#include<cmath>using namespace std;void p(int n)int k,i;k=sqrt(n);for(i=2;i<=k;i+)if(n%i

7、=0) break;if(i>k)cout<<"是素数"<<endl;elsecout<<"不是素数"<<endl;int main()int n;cin>>n;p(n);return 0;三、 奇偶数的判定利用条件判断进行判定,即if语句, if(n%2=0)则为偶数,否则为奇数#include<iostream>using namespace std;int main()int a;cin>>a;if(a%2=0)cout<<"yes&qu

8、ot;<<endl;elsecout<<"no"<<endl;return 0;四、 数的大小的比较(一)对三个数的排序比较1、利用if语句实现,利用中间变量进行比较。#include<iostream>using namespace std;int main()int a,b,c,max;cout<<"请输入三个整数a,b,c:"cin>>a>>b>>c;if(a>b) if(a>c) /*对a和c进行比较*/ max=a; /*如果if语句的条

9、件正确,执行这个语句,即如果a>c,将a的值赋值给max*/ else max=c; /*如果if语句的条件不正确,执行这个语句,即如果a<=c,将c的值赋值给max*/else if(b>c) max=b; else max=c;cout<<"max="<<max<<endl;return 0;进行两轮比较后,即可比较完2、#include<iostream>using namespace std;int main()int a,b,c,max;cin>>a>>b>>c;

10、if(a>b)max=a;elsemax=b;if(c>max)max=c;cout<<"max="<<endl;return 0;3、利用条件表达式比较#include<iostream>using namespace std;int main()int a,b,c,max,min;cin>>a>>b>>c;min=a<b?a:b;min=min<c?min:c;max=a>b?a:b;max=max>c?max:c;cout<<"max=&q

11、uot;<<max<<endl<<"min="<<min<<endl;return 0;(二)对多个数的比较利用循环语句,对每个数进行顺次比较,利用中间变量,将每个数和中间变量进行比较,如果符合条件,那就刷新值,如果不符合条件,就进行下面的比较。#include<iostream>using namespace std;int main()int temp,max=0,min,i=0; /*首先对max进行赋初值为零,然后要和下面的输入值进 行比较,不过不赋初值,就没法和下面的值进行比较*/cout&l

12、t;<"Please input scores:"cin>>temp;min=temp; /*这个语句的作用是将输入值赋值给min,因为数都是大于0的, 如果赋初值为0,那么将对最小值无法进行比较,但不影响最大值*/ for(;)if(temp<0) break; /*进行条件判断,如果值为负数的时候, 结束整个循环,负责继续执行下面的语句*/if(temp>max) max=temp; /*进行条件判断,如果值大于max,就将中间变量的值赋值给max*/if(temp<min) min=temp; /*进行条件判断,如果值大于max,就

13、将中间变量的值赋值给max*/cin>>temp; /*然后输入另一个数,进行下一轮的比较*/cout<<"max="<<max<<'t'<<"min="<<min<<endl;return 0;五、数的求和,平均值问题1、一般的输入数据求和#include<iostream>using namespace std;int main()int a,sum=0,i;cin>>a;while(a>0)sum+=a;cin>&

14、gt;a;cout<<sum<<endl;return 0;2、求1+2+3+n;#include<iostream>using namespace std;int main()int n,sum,i; /*计算1+2+3+.+n的值*/sum=0;cin>>n;cout<<"1+2+3+.+n的值为:"for(i=1;i<=n;i+)sum+=i;cout<<sum<<endl;return 0;3、1+3+5+99的值#include<iostream>using na

15、mespace std;int main()int n,sum,i; /*计算1+2+3+.+n的值*/sum=0;cin>>n;cout<<"1+2+3+.+n的值为:"for(i=1;i<=n;i+)sum+=i;cout<<sum<<endl;return 0;4、2+4+6+100的值#include<iostream>using namespace std;int main()int n,sum,i; /*计算1+2+3+.+n的值*/sum=0;cin>>n;cout<<&

16、quot;1+2+3+.+n的值为:"for(i=1;i<=n;i+)sum+=i;cout<<sum<<endl;return 0;5、求1+2+3+n的和不大于1000的最大自然数n#include<iostream>using namespace std;int main()int n,s=0;for(n=1;s<=1000;n+)s+=n;cout<<"n="<<n<<endl;return 0;6、, n从键盘输入#include<iostream> /*计算

17、sqrt(1)+sqrt(2)+.+sqrt(n)的值*/#include<cmath>using namespace std;int main()int n,i;double sum=0;cin>>n;for(i=1;i<=n;i+)sum+=sqrt(n);cout<<"sum="<<sum<<endl;return 0;7、#include<iostream> #include<cmath>using namespace std;int main()int n,i;double

18、sum=0,s=0;cin>>n;for(i=1;i<=n;i+) s+=sqrt(n);sum+=s;cout<<"sum="<<sum<<endl;return 0;8、求出分数序列2/1+3/2+5/3+8/5+13/8,的前20项的和。#include<iostream> /*计算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

19、;t=a;a+=b;b=t;cout<<"sum="<<sum<<endl;return 0;9、求出分数序列2/4+4/7+6/10+8/13+10/16+的前20项的和#include<iostream> /*计算2/4+4/7+6/10+8/13.*/using namespace std;int main()int i,n;double sum,t;cin>>n;for(i=1,sum=0;i<=n;i+) t=(2.0*i)/(3.0*i+1); sum+=t;cout<<"2

20、/4+4/7+6/10+8/13.的值为:"<<sum<<endl;return 0;10、求n!#include<iostream>using namespace std;int main()int i,n,sum=1;cin>>n;for(i=1;i<=n;i+)sum*=i;cout<<sum<<endl;return 0;11、1!+2!+n!,n从键盘输入#include<iostream>using namespace std;int main()int i,n,sum=0,t=1;

21、cin>>n;for(i=1;i<=n;i+)t*=i;sum+=t;cout<<sum<<endl;return 0;12、求s=a+aa+aa,共n个,其中n和a从键盘输入#include<iostream>#include<cmath>using namespace std;int main() int s=0,i,n,k,a,z,sum;cout<<"请输入a:"cin>>a;cout<<"请输入n:"cin>>n;for(k=1;k

22、<=n;k+)for(i=0;i<k;i+)z=a*pow(10,i);s+=z; sum+=s;cout<<"s="<<s<<endl;return 0;13、对三个数求平均数#include<iostream>using namespace std;int main()float a,b,c,ave=0;cin>>a>>b>>c;ave=(a+b+c)/3;cout<<ave<<endl;return 0;14、对多个数的求和#include<i

23、ostream>using namespace std;int main()float x,ave=0,i;cin>>x;ave=x;for(i=1;x>=0;i+)cin>>x;ave+=x;ave/=i;cout<<ave<<endl;return 0;六、大小写字母的转换#include<iostream>using namespace std;int main()char ch;cout<<"请输入一个字母ch:"cin>>ch;if(ch>='a'

24、&&ch<='z') ch+=-32;cout<<"ch="<<ch<<endl;return 0;#include<iostream>using namespace std;int main()char ch;cout<<"请输入一个字母ch:"cin>>ch;ch=(ch>='a'&&ch<='z')?ch-32:ch;cout<<"ch="<&

25、lt;ch<<endl;return 0;七、输入一行字符,分别统计其中英文字母,数字,空格,其他字符的个数。#include<iostream>using namespace std;int main()char c;int letters=0,space=0,digit=0,other=0;cout<<"enter one line:"<<endl;while(c=getchar()!='n') /getchar的作用是输入一个字符。if(c>='a'&&c<=&

26、#39;z'|c>='A'&&c<='Z')letters+;else if(c=' ')space+;else if(c>='0'&&c<='9')digit+;elseother+;cout<<"letter:"<<letters<<'t'<<"space:"<<space<<'t'<<&quo

27、t;digit:"<<digit<<'t'<<"other:"<<other<<endl;return 0;八、求水仙花数,即一个三位数,各位的数字的立方和等于该数本身。#include<iostream>#include<cmath> /要使用数学库函数,加入此命令。using namespace std;int main()int m,a,b,c;for(m=100;m<=999;m+)a=m/100; /*a为三位数百位数的值*/b=m/10%10; /

28、*b为三位数十位数的值*/c=m%10; /*c为三位数个位数的值*/if(m=pow(a,3)+pow(b,3)+pow(c,3) /pow(x,y)的作用是求xy.cout<<"m="<<m<<endl;return 0;九、打印输出如下“*”金字塔。*#include<iostream> /*打印金字塔*/using namespace std;int main()int i,j;for(i=1;i<=5;i+)for(j=1;j<=5-i;j+)cout<<" "for(j=

29、1;j<=2*i-1;j+)cout<<"*"cout<<endl;return 0;十、打印出九乘九乘法表#include<iostream>using namespace std;int main()int i,j;for(i=1;i<=9;i+)for(j=1;j<=i;j+)cout<<i<<"*"<<j<<"="<<i*j<<'t'cout<<endl;return 0;十

30、一、输入两个正整数,求它们的最大公约数和最小公倍数。#include<iostream>using namespace std;int main()int p,r,n,m,temp;cout<<"Please enter two numbers n,m:"cin>>n>>m;if(n<m) temp=n; n=m; m=temp; p=m*n;while(m!=0) r=n%m; n=m; m=r; cout<<"最大公约数为="<<n<<endl;cout<

31、<"最小公倍数为="<<p/n<<endl;return 0;十二、将一个一位数组逆序输出。#include<iostream>using namespace std;int main()int i,a10=1,2,3,4,5,6,7,8,9,10,j,t;cout<<"原数组中的数据:n"for(i=0;i<10;i+)cout<<ai<<'t'cout<<endl;for(i=0;i<=4;i+) j=9-i;t=ai; ai=aj;

32、 aj=t;cout<<"逆序存放后的数据:"<<endl;for(i=0;i<10;i+)cout<<ai<<'t'cout<<endl;return 0;十三、求Fibonacci数列#include<iostream>using namespace std;int main()int i,f20=1,1;for(i=2;i<20;i+)fi=fi-2+fi-1;for(i=0;i<20;i+)cout<<'t'<<fi;if

33、(i+1)%5=0)cout<<endl;return 0;十四、冒泡排序#include<iostream>using namespace std;int main()int a21,i,j,t;cout<<"Input 20 numbers:"<<endl;for(i=1;i<=20;i+)cin>>ai;for(j=1;j<=20;j+)for(i=1;i<=20-j;i+)if(ai>ai+1)t=ai;ai=ai+1;ai+1=t;cout<<endl<<&

34、quot;The sorted numbers:n"for(i=1;i<=20;i+)cout<<ai<<'t'if(i%5=0)cout<<endl;return 0;十五、选择排序#include<iostream>using namespace std;int main()int a20,i,j,t,p;cout<<"Input 20 numbers:"<<endl;for(i=0;i<20;i+)cin>>ai;for(i=0;i<19;i

35、+)p=i;for(j=i+1;j<20;j+)if(aj<ap)p=j;if(p!=i)t=ai;ai=ap;ap=t;cout<<"The sorted numbers:n"for(i=0;i<20;i+)cout<<ai<<'t'cout<<endl;return 0;X x<12x-1 1<=x<103x-11 x>=10Y=十六、#include<iostream>using namespace std;int main()int x,y;cin&

36、gt;>x;if(x<1) y=x;else if(x<10) y=2*x-1;else y=3*x-11;cout<<"y="<<y<<endl;return 0;十七、给出一个百分制成绩,要求输出等级。成绩分为5个等级,分别为A(90100),B(8089),C(7089),D(6069),E(059)利用switch语句注:在执行switch语句时,根据switch表达式的值找到与之匹配的case子句开始执行对应的表达式,如果没有break语句跳出分支结构,程序将一直向下执行下去,不再进行判断。#include&l

37、t;iostream>using namespace std;int main()int score;char grade;cin>>score;switch(score/10)case 9 : grade='A'break;case 8 : grade='B'break;case 7 : grade='C'break;case 6 : grade='D'break;default :grade='E'cout<<grade<<endl;return 0;利用if语句。#i

38、nclude<iostream>using namespace std;int main()int score;char grade;cin>>score;if(score>=90) grade=A;else if(score>=80) grade=B;else if(score>=70) grade=C;else if(score>=60) grade=D;else grade=E;cout<<grade<<endl;return 0;2、输入一个正整数n,再输入n个学生的成绩,计算平均值,并统计各等级成绩的个数。成绩分为5个等级,分别为A(90100),B(8089),C(7089),

温馨提示

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

评论

0/150

提交评论