高潮主编程序编程题答案C++.doc_第1页
高潮主编程序编程题答案C++.doc_第2页
高潮主编程序编程题答案C++.doc_第3页
高潮主编程序编程题答案C++.doc_第4页
高潮主编程序编程题答案C++.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

2-6 对n(0)个人进行分班,每班k(0)个人,最后不足k人也编一班,写出能编班数的表达式。#include using namespace std;void main ()int n,k;coutn;coutk;coutn=nnk=kendl;if(n%k=0)cout一共有n/k个班n每个班的人数为:kendl;elsecout一共有n/k+1个班其中有一个班的人数为:n%kn其他每个班的人数为:kendl;3-1 #include #include using namespace std;void main()double y,x;coutx;if(x5)y=fabs(x); else if(x20)y=3*x*x-2*x+1; elsey=x/5;couty的值为:yendl;3-2#include #include using namespace std;void main()double a,b,c,y;cout方程式为:a*x*x+b*x+c=0nabc;couta=anb=bnc=cendl;y=b*b-4*a*c;if(y0)cout方程无解;else if(y=0)cout方程的解为:-b/(2*a);elsecout方程的解为:(-b+sqrt(y)/2*an(-b-sqrt(y)/2*aendl;3-3#include using namespace std;void main ()double p,s;couts;while(s0)cout你输入的工资数目有误,请正确的数目:s;int k=s/1000;switch(k)case 0: p=0;couts-s*pendl;break;case 1: p=0.05;couts-s*pendl;break;case 2:case 3:case 4: p=0.08;couts-s*pendl;break;case 5:case 6:case 7: p=0.15;couts-s*pendl;break;default:p=0.20;couts-s*pendl;3-4#include using namespace std;void main ()int n=1;double x,sum;x=1;sum=1;while (1/x=1e-6)x=x*n;n+;sum+=1/x;coutsumendl;3-5#include using namespace std;void main ()int a,b,c,i,n;coutn;a=1;b=2;i=0;double sum=0;while(in)break;sum+=x; c=a+b;i+;sign=1; if(i%2=0) sign=-1;y=sign*c/b;sum+=y; if(in)break; b=a+c;i+;sign=1; if(i%2=0) sign=-1;z=sign*b/a;sum+=z; a=c+b;coutsumendl;3-5 #include using namespace std;int f(int);void main()double i,n=20,b=1;double sigh=1;double sum=0;for(i=1;i=n;i+)sum=sum+(b+f(i)/b)*sigh;sigh=-sigh;b=(b+f(i);cout前20项和为:sumendl;int f(int a)double y1=1,y2=1,y,j;if(a=1) return y1;else if(a=2)return y2;else for(j=3;j=a;j+)y=y1+y2;y1=y2;y2=y;return y;或#include using namespace std;double f(int n)double a,b,c,i,y;a=1;b=2;if(n=1)y=a;return(y);else if(n=2)y=b;return(y);else for(i=3;i=n;i+)c=a+b;a=b;b=c;y=c;return(y);double g(int n)double a,b,c,i,y;a=2;b=3;if(n=1)y=a;return(y);else if(n=2)y=b;return(y);else for(i=3;i=n;i+)c=a+b;a=b;b=c;y=c;return(y);void main()double n=20,sum=0,sign=1;for(int i=1;i=20;i+)sum+=g(i)/f(i)*sign;sign=-sign;cout这个数列的前20项之和为:sumendl; 3-6#include using namespace std;void main ()int n; cout所求水仙花数为:endl;for(n=100;n1000;n+)int a,b,c;a=n/100;b=(n-100*a)/10;c=n-100*a-10*b;if(n=a*a*a+b*b*b+c*c*c)coutnendl;或#include #include using namespace std;void main ()int n; cout所求水仙花数为:endl;for(n=100;n1000;n+)int a,b,c;a=n/100;b=(n-100*a)/10;c=n-100*a-10*b;if(n=pow(a,3)+pow(b,3)+pow(c,3)coutnendl;3-7#include using namespace std;void main ()int n,i;i=0; cout各个数位的数字之和等于11的数为:endl;for(n=100;n1000;n+)int a,b,c,d;a=n/100;b=(n-100*a)/10;c=n-100*a-10*b;d=a+b+c;if(d=11)i+;coutn ;if(i%5=0)coutendl;coutendl这样的整数的个数为:iendl;3-8#include using namespace std;void main() int d,n,x,y; for(d=0;d10;d+) for(n=0;n13;n+) x=36-d-n; y=4*d+3*n+x/2; if(y=36&x%2=0) cout男人的数量为:dn女人的数量为:nn 小孩的数量为:xendl; 3-9#include using namespace std;void main() int i,a; cout1000以内的所有完数分别是:endl; for(i=1;i1000;i+) int sum=0; for(a=1;a=i;a+) if(i%a=0) sum+=a; if(sum=i) coutsumendl; 3-11#include using namespace std;int f(int x,int y)int a;a=x*y;return(a);int g(int x,int y)int a=21,b,t;if(xy)b=(a*y)/(x*y);elseb=(a*x)/(x*y);return(b);void main()cout一共能听到鞭炮声的次数是:f(3,21)-g(5,6)-g(6,7)-g(5,7)endl;4-1#include using namespace std;int f(int a,int b)int i,y;for(i=1;i=a;i+)if(a%i=0&b%i=0)y=i;return(y);int g(int a,int b)int c,d,y,s,i; s=1;for(i=1;i=a;i+)c=a%i;d=b%i;if(c=0&d=0)a=a/i;b=b/i; s=s*i;i=1; y=a*b*s; return(y); void main()int a,b;cout请输入两个整数:ab;couta和b的最大公约数为:f(a,b)endl;couta和b的最小公倍数为:g(a,b)endl;4-2#include using namespace std;#define PI 3.1416float l(float r)float a;a=2*PI*r;return(a);float s(float r)float a;a=PI*r*r;return(a);void main()int r;cout请输入圆的半径大小数值:r;cout半径为r的圆的周长为:l(r)endl半径为r的圆的面积为:s(r)endl;4-3#include using namespace std;void main()int x,y;int getPower(int,int);cout计算x的y次幂,请你输入x和y的值:xy;coutx的y次幂等于:getPower(x,y)endl;int getPower(int x,int y)int i,a;a=1;for(i=1;i=y;i+)a*=x;return(a);4-4#include #include using namespace std;void main()double a,b,c;double area(double,double,double);cout请输入三角形的各边边长值:abc;while(a+bc&b+ca&a+cb)cout你输入的边长值不符合(a+bc&b+ca&a+cb)要求,请重新输入:abc;cout所求的三角形的面积为:area(a,b,c)endl;double area(double j,double k,double l) double s,y,f;s=(j+k+l)/2;y=s*(s-j)*(s-k)*(s-l);f=sqrt(y);return(f);4-5#include using namespace std;void main()int i,n;double x,sum;sum=1;n=1;cout请输入x的值:x; double f(double,int);for(i=1;f(x,n)1e-6;i+)n=i;sum+=f(x,n);coute的x次方等于:sumendl;double f(double x,int n)double c,s,j,y;j=1;s=1;for(c=1;c=n;c+)s*=x; j*=c;y=s/j; return(y);5-1#include using namespace std;void main()int a23,i,j;cout请你输入要求和的数:endl;for(i=0;i2;i+)for(j=0;jaij;for(i=0;i2;i+)for(j=0;j3;j+)coutaij=aij ;coutendl;int sum=0; for(i=0;i2;i+)for(j=0;j3;j+)sum+=aij; cout这个数组所有元素的和是:endlsumendl;5-2#include using namespace std;void main()int a33,i,j;cout请你输入要求和的数:endl;for(i=0;i3;i+)for(j=0;jaij;for(i=0;i3;i+)for(j=0;j3;j+)coutaij=aij ;coutendl;int sum1=0;for(i=0;i3;i+)for(j=0;j3;j+)if(j=i) sum1+=aij;int sum2=0;for(i=0;i3;i+)for(j=0;j3;j+)if(j=2-i&j!=i)sum2+=aij; cout这个矩形方阵中两条对角线上的元素之和为:sum1+sum2endl;5-3#include using namespace std;void main()int a33,i,j;cout请你输入要转置的矩阵的元素:endl;for(i=0;i3;i+)for(j=0;jaij;for(i=0;i3;i+)for(j=0;j3;j+)coutaij=aij ;coutendl; cout转置后的数组为:endl;int d33;for(i=0;i3;i+)for(j=0;j3;j+) dij=aji;coutdij ; coutendl;5-4#include #include using namespace std;void main() const int N=10;int aN,c; int f(int ,int ,int ); void bubble(int ,int );for(int i=0;iN;i+)ai=rand()/100;coutai ;coutendl; bubble( a, N); for(i=0;iN;i+)coutai ;coutendl;cout请输入一个你要找的数:c;if(f(a,N,c)=-1)cout无此数endl;else coutf(a,N,c)endl;int f(int b,int n,int x)int high,mid,low,find=-1;low=0;high=n-1;while(low=high)mid=(low+high)/2;if(xbmid) low=mid+1;elsefind=mid;break;return find;void bubble(int array,int n)int i,j,t;for(i=1;in-1;i+)for(j=0;jarrayj+1)t=arrayj;arrayj=arrayj+1;arrayj+1=t;5-5#include using namespace std;void main() char f(char);char a=njdeurolm.,n*jjhJ88*.lj,.*;f(a);char f(char s ) int i;couts=;for(i=0;si!=0;i+)if(si!=*&si!=.)coutsi;coutendl;return 0;5-6不完善:#include using namespace std;void main()int a;void convert(int);cout请输入一个整数:a;convert(a);void convert(int n)int c;if(n%10!=0)c=n%10;n=n/10; convert(n); coutc+0;完善:#include using namespace std;void main()int a;void convert(int);cout请输入一个整数:a;convert(a);void convert(int n)int c;if(n%10!=0)c=n%10;n=n/10; convert(n); coutc+0;else if(n%10=0&n/10!=0)c=n%10;n=n/10;convert(n);coutc+0; 5-7#include using namespace std;void main()void reverse(char,int);char c10000;cout请输入一个字符串:endl;cout你输入的字符串是:c;int i=0;while(ci!=0|ci= )i+;cout逆序后的字符串为:endl;reverse(c,i);void reverse(char a,int n)char b10000;for(int i=0;in;i+)bi=an-i-1;coutbi;coutendl;5-8#include using namespace std;void main()void f(string,int);string str11000;cout请输入n个字符串:str1;int a=0;while(str1a!=0)a+;string a2;int c=0;for(int i=0;ia;i+)a2=str1i;while(a2i!=0)c+;f(a2,c);void f(string srt,int n)char a1;for(int i=0;isrti+1)a1=srti;srti=srti+1;srti+1=srti;coutsrtendl;5-9#includeusing namespace std;void main()char b1000000;void f(char ,int);cout请输入要统计的文字:endl;gets(b);int i=0;while(bi!=0)i+;f(b,i); void f(char a,int n) int b=0,c=0,d=0,e=0, g=0; for(int i=0;in;i+) if(47ai&ai58) b+; else if(ai= ) d+; else if(64ai&ai91) c+; else if(96ai&ai123) e+; else if(ai=0) break; else g+; cout你输入的文字中,英文大写字母的个数是:cendl英文小写字母的个数是:eendl 数字的个数是:bendl空格的个数是:dendl其他字符的个数是:gendl; 6-1#includeusing namespace std;void main()int b33;void f(int 3,int);cout请输入要转置的方针:endl;for(int i=0;i3;i+)for(int j=0;j*(*(b+i)+j);coutendl; f(b,3);void f(int a3,int n) cout转置后的矩形方阵为:endl;for(int i=0;in;i+)for(int j=0;jn;j+)cout*(*(a+j)+i) ;coutendl;6-2#includeusing namespace std;void main()int b33;void f(int 3,int);cout请输入一个:endl;for(int i=0;i3;i+)for(int j=0;j*(*(b+i)+j);coutendl;cout输入的矩阵为:endl; for(i=0;i3;i+)for(int j=0;j3;j+)cout*(*(b+i)+j) ;coutendl; f(b,3);void f(int a3,int n)int sum=0;for(int i=0;in;i+)for(int j=0;jn;j+)if(i=0|i=n-1|j=0&i!=0&i!=n-1|j=n-1&i!=0&i!=n-1)sum+=*(*(a+i)+j);cout矩阵所有靠外侧的元素之和为:sumendl;6-3#include#includeusing namespace std;void main()int b43,*p;p=b0;void f(int 3,int);cout请输入一个二维数组:endl;for(int i=0;i4;i+)for(int j=0;j*(p+i*3+j);coutendl;cout输入的二维数组为:endl; for(i=0;i4;i+)for(int j=0;j3;j+)coutsetw(5)*(*(b+i)+j);coutendl; f(b,4); cout排序后的数组为:endl; for(i=0;i4;i+)for(int j=0;j3;j+)coutsetw(5)*(*(b+i)+j);coutendl;void f(int a3,int n)int b=0,t;for(int i=1;i3*n;i+)for(int j=0;j*(a0+j+1)t=*(a0+j);*(a0+j)=*(a0+j+1);*(a0+j+1)=t;b+;if(b=0)break;6-4#include using namespace std;void main() char f(char *s);char *p,a=njdeurolm.,n*jjhJ88*.lj,.*; p=a;f(p);char f(char *s ) int i=0;while(*(s+i)!=0)if(*(s+i)!=*)cout*(s+i);i+;coutendl;return 0;6-5#include using namespace std;void main()void f(char*p,int);char a1000,*s;s=a;puts(请输入一个字符串:);gets(s);puts(输入的字符串是:);puts(s);for(int j=0;*(s+j)!=0;j+)j;puts(逆序存放后的字符串为:);f(s,j);cout=0;i-)cout*(p+i);6-6(1)#include using namespace std;void main()void strPartCopy(char*,char*);char str11000,str21000;puts(请输入一个字符串:);gets(str1);int n=0;while(*(str1+n)!=0)n+;cout所求字符串为:endl;for(int j=0;jn/2+n%2;j+)strPartCopy(str1,str2);cout*(str2+j);coutendl;void strPartCopy(char *a,char *b)int n=0;while(*(a+n)!=0)n+;int j=0;for(int i=1;in;i+=2)*(b+j)=*(a+i);j+;6-6(2)#include using namespace std;void main()char *strPartCopy(char*);char str11000;puts(请输入一个字符串:);gets(str1);int n=0;while(*(str1+n)!=0)n+;cout所求字符串为:endl;for(int c=0;cn/2+n%2;c+) cout*(strPartCopy(str1)+c);coutendl;char *strPartCopy(char *a)int n=0;

温馨提示

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

评论

0/150

提交评论