c++程序设计原理与实践第四章课后答案.docx

上传人:b****5 文档编号:6695593 上传时间:2023-01-09 格式:DOCX 页数:19 大小:336.83KB
下载 相关 举报
c++程序设计原理与实践第四章课后答案.docx_第1页
第1页 / 共19页
c++程序设计原理与实践第四章课后答案.docx_第2页
第2页 / 共19页
c++程序设计原理与实践第四章课后答案.docx_第3页
第3页 / 共19页
c++程序设计原理与实践第四章课后答案.docx_第4页
第4页 / 共19页
c++程序设计原理与实践第四章课后答案.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

c++程序设计原理与实践第四章课后答案.docx

《c++程序设计原理与实践第四章课后答案.docx》由会员分享,可在线阅读,更多相关《c++程序设计原理与实践第四章课后答案.docx(19页珍藏版)》请在冰豆网上搜索。

c++程序设计原理与实践第四章课后答案.docx

c++程序设计原理与实践第四章课后答案

第四章

2.

#include

#include

#include

usingnamespacestd;

intmain()

{

vectortemps;

doubletemp;

doublemed;

cout<<"请您输入一组数据:

\n";

while(cin>>temp)

temps.push_back(temp);

sort(temps.begin(),temps.end());//利用algorithm标准函数库的sort函数对向量进行排序。

if(temps.size()%2==0)//判断向量长度的奇偶性,假如有n个数,当n为偶数时,

//中位数为第n/2位数和第(n+2)/2位数的平均数;

//如果n为奇数,那么中位数为第(n+1)/2位数的值。

med=(temps[(temps.size()-2)/2]+temps[temps.size()/2])/2;

elsemed=temps[(temps.size()+1)/2-1];

cout<<"中值为:

"<

return0;

}

Vc6.0环境下运行情况如图:

3.

#include

#include

#include

usingnamespacestd;

intmain()

{

vectordists;

doubledist;

doublesum=0;

doublemax;

doublemin;

cout<<"请您输入一组距离:

\n";

while(cin>>dist)

dists.push_back(dist);

for(inti=0;i

sum+=dists[i];

sort(dists.begin(),dists.end());//利用标准函数库algorithm的sort函数对向量进行升序排列,

//找出最大数。

cout<<"总距离为:

"<

cout<<"最小距离为:

"<

"<

cout<<"平均距离为:

"<

return0;

}

Vc6.0环境下运行结果如下:

4.

#include

#include

#include

usingnamespacestd;

intmain()

{

intn,N;

srand(time(0));//取当前时间为种子,确保每次产生的随机数不一样。

N=1+rand()%100;//产生1-100的随机数。

cout<<"系统已经为您生成了一个(1~100)的随机数,有趣的猜数字之旅现在开始(^_^)"<

for(inti=0;i<8;)

{

i+=1;

cout<<"请输入您猜的数字:

";

cin>>n;

if(n==N&&i<=7)

{

cout<<"恭喜你,答对了!

,你真聪明(^_^)"<

break;

}

if(n==N&&n<15&&n>7)

{cout<<"我敢说你可以做的更好!

";

break;

}

if(i==7)

{

cout<<"很遗憾!

你没有猜出来,请再接再厉。

"<

cout<<"正确答案是:

"<

break;

}

if(n

cout<<"您的数字比系统给定的数字小,请您继续猜."<

if(n>N)

cout<<"您的数字比系统给定的数字大,请继续猜."<

if(n!

=N)

continue;

}

return0;

}

Vc6.0环境下运行结果如图:

5.

#include

usingnamespacestd;

inlinevoidkeep_window_open(){charch;cin>>ch;}

intmain()

{

doublea;

intk;

doubleb;

charopreator;

doubleresult;

cout<<"输入任意字符开始,输入q退出(^_^)"<

while(cin>>k)

{

if(k=='q')exit(0);

cout<<"请您输入三个参数:

"<

cin>>a>>b;

cin>>opreator;

switch(opreator)

{case'+':

result=a+b;cout<<"运算结果为:

"<<"a"<

case'*':

result=a*b;cout<<"运算结果为:

"<<"a"<

case'-':

result=a-b;cout<<"运算结果为:

"<<"a"<

case'/':

if(b==0)cout<<"数据不合法,不能做除法操作,请重新输入:

"<

else{result=a/b;cout<<"运算结果为:

"<<"a"<

case'%':

if(a-(int)a!

=0||b-(int)b!

=0)cout<<"数据不合法,不能做取余操作,请重新输入:

"<

default:

cout<<"参数没有对应的操作!

"<

cout<<"输入任意字符继续,输入q退出(^_^)"<

}

keep_window_open();

return0;

}

Vc6.0环境下运行结果如下:

6.

#include

#include

#include

usingnamespacestd;

inlinevoidkeep_window_open(){charch;cin>>ch;}

intmain()

{

intn;

charc;

stringstr;

vectornumbs(10);

numbs[0]="zero";

numbs[1]="one";

numbs[2]="two";

numbs[3]="three";

numbs[4]="four";

numbs[5]="five";

numbs[6]="six";

numbs[7]="seven";

numbs[8]="eight";

numbs[9]="nine";

cout<<"如果您想输入数字,请输入's',如果您想输入单词,请输入'w'.退出请输入'q'"<

while(cin>>c)

{

if(c=='q')exit(0);

switch(c)

{

case's':

cout<<"请输入您要转换的数字(0~9):

"<

cin>>n;

switch(n)

{

case0:

cout<

case1:

cout<

case2:

cout<

case3:

cout<

case4:

cout<

case5:

cout<

case6:

cout<

case7:

cout<

case8:

cout<

case9:

cout<

default:

cout<<"没有对应的单词!

"<

}break;

case'w':

cout<<"请输入您要转换的英语单词(zero~nine):

"<

cin>>str;

if(str=="zero")cout<

elseif(str=="one")cout<

elseif(str=="two")cout<

elseif(str=="three")cout<

elseif(str=="four")cout<

elseif(str=="five")cout<

elseif(str=="six")cout<

elseif(str=="seven")cout<

elseif(str=="eight")cout<

elseif(str=="nine")cout<

break;

default:

cout<<"没有对应选项!

"<

}

cout<<"如果您想输入数字,请输入's',如果您想输入单词,请输入'w'.退出请输入'q'"<

}

keep_window_open();

return0;

}

Vc6.0环境下运行情况如图:

7.

#include

#include

usingnamespacestd;

inlinevoidkeep_window_open(){charch;cin>>ch;}

intmain()

{

doublea;

intk,a2,b2;

doubleb;

charopreator,c;

doubleresult;

stringa1,b1;

doubleoperate(doublea,doubleb,charopreator);

doublechange(stringx);

cout<<"输入任意字符开始,输入q退出(^_^)"<

while(cin>>k)

{

if(k=='q')exit(0);

cout<<"如果想进行数字操作,请输入'n',如果想进行英文形式的操作,请输入'w'"<

cin>>c;

switch(c)

{

case'n':

cout<<"请您输入三个参数:

"<>a>>b;cin>>opreator;

result=operate(a,b,opreator);cout<<"运算结果为:

"<

case'w':

cout<<"请您输入三个参数:

"<>a1>>b1;cin>>opreator;

a2=change(a1);b2=change(b1);result=operate(a2,b2,opreator);cout<<"运算结果为:

"<

default:

cout<<"没有满足您输入的操作!

"<

}

cout<<"输入任意字符继续,输入q退出(^_^)"<

}

keep_window_open();

return0;

}

 

doubleoperate(doublea,doubleb,charopreator)

{

doubleresult;

switch(opreator)

{case'+':

result=a+b;break;

case'*':

result=a*b;break;

case'-':

result=a-b;break;

case'/':

if(b==0){cout<<"数据不合法,不能做除法操作,请重新输入!

"<

elseresult=a/b;break;

case'%':

if(a-(int)a!

=0||b-(int)b!

=0)cout<<"数据不合法,不能做取余操作,请重新输入:

"<

default:

cout<<"参数没有对应的操作!

"<

returnresult;

}

doublechange(stringx)

{

doublec;

if(x=="zero")c=0;

elseif(x=="one")c=1;

elseif(x=="two")c=2;

elseif(x=="three")c=3;

elseif(x=="four")c=4;

elseif(x=="five")c=5;

elseif(x=="six")c=6;

elseif(x=="seven")c=7;

elseif(x=="eight")c=8;

elseif(x=="nine")c=9;

returnc;

}

Vc6.0环境下运行结果如下:

8.

#include

#include

usingnamespacestd;

inlinevoidkeep_window_open(){charch;cin>>ch;}

intmain()

{

inti=1,n,sum=0;

cout<<"请您输入米的数量:

"<

while(cin>>n)

{

if(n=='q')exit(0);

while(sum<=n)

{

sum+=pow(2,i-1);

cout<<"格子数:

"<

cout<<"每次米的数量:

"<

i+=1;

}

i=1;//重新对i和sum赋值,以便进行下一次计算。

sum=0;

cout<<"输入'q'结束,请您输入米的数量:

"<

}

keep_window_open();

return0;

}

Vc6.0环境下运行结果如下图:

9.

#include

#include

usingnamespacestd;

intmain()

{

inti;

doublesum=0;

for(i=1;i<=64;i++)

{

sum+=pow(2,i-1);

cout<<"格子数:

"<

cout<<"每次米的数量:

"<

}

return0;

}

Vc6.0环境下运行情况如下:

10.

#include//unicode中_tmain()的头文件。

#include

#include//随机数头文件。

#include

#include//控制台输入输出,getch()的头文件。

unix和linux通常没有这个头文件,要自己加载。

#include

usingnamespacestd;

intmun_eqv=0;//用于记录平局数

intmun_cpt=0;//记录电脑胜利局数

intmun_men=0;//记录用户胜利局数

intcpt;//电脑出的随机数。

};

//电脑随机出现1,2,3,与人的输入(r,s,c分别表示石,头剪,刀布)进行比较,得出输赢结果。

最后统计结果。

//i表示帮助g表示查看结果q退出游戏

 

//实现步骤

intcomputer()

{

srand((unsigned)time(NULL));

returnrand()%3;

}

voidstar()

{

mun_eqv=0;

mun_cpt=0;

intmun_men=0;

cout<

cout<

cout<<"现在开始!

"<

cout<<"请出招吧!

"<

}

voidanswer()//判断最后的输赢

{

cout<

cout<<"总下了"<

cout<<"其中,"<

//cout<<"人比电脑:

"+mun_men+"比"+mun_cpt+";"+mun_eqv+"平"<

cout<<"人比电脑:

"<

if(mun_cpt==mun_men)

{

cout<<"平局,彼此彼此!

"<

}

elseif(mun_cpt

{

cout<<"祝贺你取得胜利,什么时候请客呀!

"<

}

else

{

cout<<"胜负及兵家常事,回去修炼几年再来吧!

"<

}

}

 

voidwork(charyou,inthim)//9种情况讨论

{

cout<

if(you=='r'&&him==0)

{

cout<

cout<<"平局!

我们彼此彼此吧?

"<

mun_eqv++;

}

elseif(you=='s'&&him==1)

{

cout<<"剪刀对剪刀"<

cout<<"平局!

我们彼此彼此吧?

"<

mun_eqv++;

}

elseif(you=='c'&&him==2)

{

cout<<"布对布"<

cout<<"平局!

我们彼此彼此吧?

"<

mun_eqv++;

}

elseif(you=='r'&&him==1)

{

cout<<"天呀,你的石头,我的剪刀!

"<

cout<<"你胜了"<

mun_men++;

}

elseif(you=='s'&&him==2)

{

cout<<"天呀,你的剪刀剪我的布!

"<

cout<<"你胜了,谢谢刀下留情!

"<

mun_men++;

}

elseif(you=='c'&&him==0)

{

cout<<"天呀,你的布包我的石头!

"<

cout<<"你胜了"<

mun_men++;

}

elseif(you=='r'&&him==2)

{

cout<<"怎么样,石头同志,尝过我布的利害了吧?

"<

cout<<"你输了,还敢再来吗?

"<

mun_cpt++;

}

elseif(you=='c'&&him==1)

{

cout<<"怎么样,布布同志,尝过我剪刀的利害了吧?

"<

cout<<"你输了,还敢再来吗?

"<

mun_cpt++;

}

elseif(you=='s'&&him==0)

{

cout<<"怎么样,剪刀同志,我的石头你也敢来?

"<

cout<<"你输了,还敢再来吗?

"<

mun_cpt++;

}

}

voidhelp()

{

cout<<"石头剪刀布游戏"<

cout<

cout<

cout<<"用户按“r”(Rock)表示石头,“s”(Scissors)表示剪刀,“c”(Cloth)表示布,“b”(begin)表示开始,“i”(Instruction)表示查看帮助,“g”(game)表示查看结果,“q”(Quit)表示退出。

"<

cout<<"当游戏开始后,按R、S、C进行人机游戏。

"<

cout<<"游戏规则:

布包石头,石头碰剪刀,剪刀剪布为胜利,"<

cout<<"如果出的是同样的,比如同是石头,则平局。

"<

}

 

int_tmain(intargc,_TCHAR*argv[])

{

booly=true;

help();

star();

while(y)

{

charb;

b=getch();

switch(b)

{

case'r':

case's':

case'c':

cpt=computer();

work(b,cpt);

break;

case'b':

star();

break;

case'i':

help();

break;

case'g':

answer();

break;

case'q':

exit

(1);

}

}

return0;

}

Vc6.0环境下的运行情况如图:

11.

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1