实验2答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验2选择和循环结构程序设计1.求三个整数的最大值和最小值。1)定义三个整形变量x1、x2、x3,并通过cin输入变量值2)用if-else语句对三个整数进行比较,求出最大值和最小值3)用cout显示计算结果//参考一#includeiostreamusingnamespacestd;intmain(){intx1,x2,x3,max,min;coutinputthreenumbers:;cinx1x2x3;//求最大值if(x1x2)max=x1;elsemax=x2;if(x3max)max=x3;//求最小值if(x1x2)min=x2;elsemin=x1;if(x3min)min=x3;//输出结果coutmax(x1','x2','x3)=maxendl;coutmin(x1','x2','x3)=minendl;return0;}//参考二#includeiostream.hvoidmain(){intx1,x2,x3,max,min;cout请输入三个整数:endl;cinx1x2x3;if(x1x2)if(x1x3)max=x1;elsemax=x3;elseif(x2x3)max=x2;elsemax=x3;if(x1x2)if(x1x3)min=x1;elsemin=x3;elseif(x2x3)min=x2;elsemin=x3;cout最大值是:max'\t'最小值是:minendl;}//参考三#includeiostream.hintfmax(int,int);intfmin(int,int);voidmain(){intx1,x2,x3,max,min;cout请输入三个整数:endl;cinx1x2x3;max=fmax(fmax(x1,x2),x3);min=fmin(fmin(x1,x2),x3);cout最大值是:max'\t'最小值是:minendl;}intfmax(inta,intb){if(ab)returna;elsereturnb;}intfmin(inta,intb){if(ab)returna;elsereturnb;}2.下面程序统计字符数组c中0、1、2及其他字符出现的次数,分别存放在变量i0、i1、i2中,统计结束后输出它们的值。要求:分析出现结果的原因,如何修改使结果正确。#includeiostreamusingnamespacestd;intmain(){charc[]=”0123456789001112222”;inti0=0,i1=0,i2=0,i3=0;for(inti=0;i19;i++)switch(c[i]){case’0’:i0++;case’1’:i1++;case’2’:i2++;default:i3++;}cout”i0=”i0endl;cout”i1=”i1endl;cout”i2=”i2endl;cout”i3=”i3endl;return0;}改为#includeiostreamusingnamespacestd;intmain(){charc[]=”0123456789001112222”;inti0=0,i1=0,i2=0,i3=0;for(inti=0;i19;i++)switch(c[i]){case’0’:i0++;break;case’1’:i1++;break;case’2’:i2++;break;default:i3++;}cout”i0=”i0endl;cout”i1=”i1endl;cout”i2=”i2endl;cout”i3=”i3endl;return0;}3.判断用户输入正整数n是否为素数,输出判断结果。#includeiostream#includemath.husingnamespacestd;intmain(){intm,i,k;coutinputanumber:;cinm;k=sqrt(m);for(i=2;i=k;i++)if(m%i==0)break;if(ik)printf(%disaprimenumber\n,m);elseprintf(%disnotaprimenumber\n,m);return0;}4.增加实验3的功能,判断用户输入的正整数n是否为素数,直到用户输入1为止。1)用while循环读入正整数n2)对于每个正整数n,采用for循环判断是否为素数。3)打印输出判断结果#includeiostream.h#includemath.hintmain(){intm,i,k;coutinputanumber:;cinm;while(m!=1){k=sqrt(m);for(i=2;i=k;i++)if(m%i==0)break;if(ik)printf(%disaprimenumber\n,m);elseprintf(%disnotaprimenumber\n,m);coutinputanumber:;cinm;}return0;}//参考#includeiostream.h#includemath.hvoidmain(){intn,k;while(1){cout请输入正整数:endl;cinn;if(n==1)break;elseif(n0){cout输入错误endl;continue;}k=(int)sqrt(n);for(inti=2;i=k;i++)if(n%i==0)break;if(ik)coutn是素数endl;elsecoutn不是素数endl;}}5.编写一个程序实现两个数之间简单的四则运算。在程序中,提示用户按表达式顺序输入操作数与运算符。#includeiostreamusingnamespacestd;intmain(){intx1,x2,r;charc;cout请输入一个四则运算表达式(形如:3+53-53*53/5):;cinx1cx2;switch(c){case'+':r=x1+x2;break;case'-':r=x1-x2;break;case'*':r=x1*x2;break;case'/':r=x1/x2;break;default:{cout操作符输入有误endl;return0;}}coutx1cx2=rendl;return0;}6.增加实验5的功能,是程序运行时,能一次完成多个运算,直至用户输入字符“N”(在程序中,提示用户输入“Y”或“N”以决定是否继续进行四则运算)。//参考一#includeiostreamusingnamespacestd;intmain(){intx1,x2,r;charc,m='Y';while(m!='n'&&m!='N'){cout请输入一个四则运算表达式(形如:3+53-53*53/5):;cinx1cx2;switch(c){case'+':r=x1+x2;break;case'-':r=x1-x2;break;case'*':r=x1*x2;break;case'/':r=x1/x2;break;default:{cout操作符输入有误,请重新输入:endl;continue;}}coutx1cx2=rendl;cout是否继续(Y/N)?;cinm;}return0;}//参考二#includeiostreamusingnamespacestd;intmain(){intx1,x2,r;charc;while(1){cout请输入一个四则运算表达式(形如:3+53-53*53/5):;cinx1cx2;switch(c){case'+':r=x1+x2;break;case'-':r=x1-x2;break;case'*':r=x1*x2;break;case'/':r=x1/x2;break;default:{cout操作符输入有误,请重新输入:endl;continue;}}coutx1cx2=rendl;cout是否继续?继续输入Y或y,退出输入N或n;cinc;if(c=='n'||c=='N')break;}return0;}7.编写程序求用户输入的正整数n的阶乘。//参考一#includeiostreamusingnamespacestd;intmain(){inti,n;ints=1;//或是doubles=1;cout请输入一个正整数:;cinn;for(i=1;i=n;i++)s*=i;coutn的阶乘为sendl;return0;}//参考二#includeiostreamusingnamespacestd;intmain(){inti,j;ints=1;//或是doubles=1;cout请输入一个正整数:;cini;j=i;while(i=1){s=s*i;i--;}coutj的阶乘为sendl;return0;}8.求101ii!(即求1!+2!+…+10!)。//参考一#includeiostreamusingnamespacestd;intmain(){inti,j;ints=1,sum=0;for(i=1;i=10;i++){s=1;for(j=1;j=i;j++)s*=j;sum+=s;}cout1!+2!+…+10!=sumendl;return0;}//参考二#includeiostreamusingnamespacestd;intmain(){inti;longsum=0,s=1;i=1;while(i=10){s=s*i;sum=sum+s;i++;}cout1!+2!+…+10!=sumendl;return0;}

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功