C++17道经典题目_第1页
C++17道经典题目_第2页
C++17道经典题目_第3页
C++17道经典题目_第4页
C++17道经典题目_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业一、/输入3个数,输出最大值#include using namespace std;int main() double a,b,c,max; cout a b c; max=ab?a:b; if(maxc) max=c; cout max= max endl; 二、/求两个数最大公约数和最小公倍数 ; 最小公倍数:两个数乘积最大公约数最大公约数:辗转相除法#include using namespace std;int main() int a,b,m,n,c; co

2、ut a b; m=ab?a:b; n=ab?b:a; a=m; b=n; while(b!=0) c=a%b; a=b; b=c; cout Maximal Common Divisor Is : a endl; cout Least Common Multiple Is: m*n/a endl; 三、输入一个以”.”结束的字符串统计其中字符、数字、空格和其他符号个数。#include using namespace std;int main() int chars=0,nums=0,spaces=0,others=0; char ch; cout please input strings

3、end of . =a&ch=A&ch=0&ch=9) nums+; cin.get(ch); else if(ch= ) spaces+; cin.get(ch); else others+; cin.get(ch); cout chars= chars ,nums= nums ,spaces= spaces ,others= others endl;四、编写程序显示由符号组成的三角形图案。屏幕显示:How many lines?用户输入:5屏幕显示:What character?用户输入:*则输出如下图案:*#include #include using namespace std;int

4、 main() int lines,i,j; char chars; cout How many lines? lines; cout What character? chars; for(i=1;i=lines;i+) coutsetw(lines-i+1);/setw只对紧挨后面的字符有效,所以应该算一个符号 for(j=1;j2*i;j+) coutchars; cout =0.0001 则继续计算xn+1=(xn+a/xn)/2;#include #include using namespace std;int main() double sqrts,x1,x2; cout sqrts

5、; x1=sqrts/2; x2=(x1+sqrts/x1)/2; while(fabs(x2-x1)0.0001) x1=x2; x2=(x1+sqrts/x1)/2; cout x2 endl; 六、用牛顿迭代法求解方程f(x)=x3+2x2+10 x-20=0在x0=0附近的根。牛顿迭代公式为:xn+1=xn-f(xn)/f(xn),则f(xn)=3x2+4x+10#include #include using namespace std;int main() double x1,x2,epson; cout x2; cout epson; do x1=x2; x2=x1-(pow(x1

6、,3)+2*pow(x1,2)+10*x1-20)/(3*pow(x1,2)+4*x1+10); while(fabs(x1-x2)epson); cout x2 endl;七、将一个字符串反序输出并拼接在后面:使用string类#include #include using namespace std;int main () string s1,s2; int length; cin s1; s2=s1; length=s1.length(); cout =0) couts1length-1; length-; cout endl; 八、输入16进制数转为8进制数(字符串输入、输出)#inc

7、lude #include using namespace std;int main () string s1,s2; int i,num; char chars; cout s1; for(i=0;is1.length();i+) switch(s1i) case 0: s2+=0000;break; case 1: s2+=0001;break; case 2: s2+=0010;break; case 3: s2+=0011;break; case 4: s2+=0100;break; case 5: s2+=0101;break; case 6: s2+=0110;break; cas

8、e 7: s2+=0111;break; case 8: s2+=1000;break; case 9: s2+=1001;break; case A: case a: s2+=1010;break; case b: case B: s2+=1011;break; case c: case C: s2+=1100;break; case d: case D: s2+=1101;break; case e: case E: s2+=1110;break; case f: case F: s2+=1111;break; default:s2= ;break; if(s2.length()%3=1)

9、 s2=00+s2; if(s2.length()%3=2) s2=0+s2; for(i=0;is2.length()-2;i+=3) num=(s2i-0)*4+(s2i+1-0)*2+(s2i+2-0)*1; chars=num+0; if(i!=0|num!=0) cout chars; cout endl;九、输入十进制数,输出八进制数#include #include /控制符头文件setw setfill hex dec oct 等 using namespace std;int main () int nums; cout.setf(ios:showbase);/输出显示控制符

10、 cout dec nums; /输入的数看成十进制数 cout octnums= oct nums endl;/以八进制输出 十、输入一个二进制表示的正整数,转换成十进制整数输出#include using namespace std;int main () int dec=0; char ch; cout Binary=; do cin.get(ch); while(ch!=0&ch!=1); do dec+=ch-0; cin.get(ch); if(ch=0|ch=1) dec*=2; while(ch=0|ch=1); cout Dec= dec endl;十一、输出2k+1个数的中

11、位数。#include #include /sort头文件 using namespace std;bool compare(int a,int b) return ab 降序 int main () int i,k,totals; cout k; totals=2*k+1; int numstotals; for(i=0;i numsi; sort(nums,nums+totals,compare);/nums开始位置,nums+totals结束位置,升序或降序函数 cout middlenum=numstotals/2 endl;补充:快速排序/快速排序 void quick_sort(i

12、nt s, int l, int r) if(lr) int i=l,j=r,x=sl; while(ij) while(i=x) j-; if(ij) si=sj; i+; while(ij&six) i+; if(ij) sj=si; j-; si=x; quick_sort(s,l,i-1); quick_sort(s,i+1,r); 十二、用类模拟一个银行存取款过程#include #include using namespace std;/储户基类class Accountpublic:Account(string i,string n,double m);/账号、姓名、钱数 voi

13、d saveMoney(double s); /存钱 void getoutMoney(double g); /取钱void showAccountInfo(); /查询protected:string id; /用户账号string name; /用户姓名 double money; /用户余额;Account:Account(string i,string n,double m)id=i;name=n;money=m;void Account:showAccountInfo() /查询cout姓名:nameendl账号:idendl余额:moneymoneyg)cout您的余额已不足!mo

14、ney=this-money-g;cout取款成功!money=this-money+s;int main() string id,name; double wage=100;/默认钱数 int choice; cout 请输入账号、姓名 id name ; Account User(id,name,wage); cout1.取款endl;cout2.存款choice; cout 请输入金额 wage; if(choice = 1) User.getoutMoney(wage); User.showAccountInfo();if(choice = 2)User.saveMoney(wage)

15、;User.showAccountInfo();十三、求斐波那契数列的前n项。#include using namespace std;int main() int a1,a2,n,i; a1=0; a2=1; cout n; cout a1 t a2 t; for(i=1;in/2;i+) a1=a1+a2; a2=a1+a2; cout a1 t a2 t; if(i%10=0) cout endl; if(n%2!=0) cout a1+a2 endl; system(pause);十四、矩阵转置#includeusing namespace std;int main() int m,n

16、,i,j; cout m n; int datamn; for(i=0;im;i+) for(j=0;j dataij; cout * endl; for(j=0;jn;j+) for(i=0;im;i+) cout dataij ; cout endl; 十五、已知XYZ+YZZ=532,其中X,Y和Z为数字,编写程序求出X,Y和Z的值。#includeusing namespace std;int main() int x,y,z; for(x=0;x=9;x+) for(y=0;y=9;y+) for(z=0;z=9;z+) if(x*100+y*10+z+y*100+z*10+z=53

17、2) cout x , y , z endl; 十六、字符串中统计数字的个数并输出#include #include using namespace std;int main() string s; int i=0,count=0; cin s; while(si!=0) if(si=0&si=9) count+; i+; cout count= count endl;十七、给定一个数组,前后分两半各有序,要求排序输出#include using namespace std;int main() int data=14,16,21,24,8,15,17,28,30,35; int bfdata10; int i=0,j=4,num=0; while(j10&i4) if(datai=dataj) bfdatanum=datai; i+; num+; else bfdatanum=dataj; j+; num+; while(i4) bfdatanum=datai; num+; i+; w

温馨提示

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

评论

0/150

提交评论