77范文网 - 专业文章范例文档资料分享平台

C++程序设计(第二版_吴乃陵_况迎辉)课后答案(3)

来源:网络收集 时间:2019-01-07 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

第二章 基本控制结构程序设计习题

3.13 用迭代法求方程x2+10cosx=0 的根,误差限为 10-5。迭代公式如下: 2 ? x 1n 0( x n sin x + cos x ) n nx n +1 = 2 xn ? 10 sin xn

解:迭代法也是用循环语句实现,数学上 #include #include const double e=1e-5; void main(){

float x0,x1; int n=0; cout<<\输入初始近似值:\cin>>x1; do{

x0=x1;

x1=(x0*x0-10*(x0*sin(x0)+cos(x0)))/(2*x0-10*sin(x0));

//x0是上次算出的结果,x1用作保存新算出的

结果

n++;

}while((fabs(x1-x0) >e)&&(n<=1e5)); if(n>1e5)

cout<<\超出迭代1e5次\\n\

else cout<<\方程x*x+10*cos(x)=0的一个根为:\cout<<\方程误差为:\}

9

3.14 两队选手每队 5 人进行一对一的比赛,甲队为 A、B、C、D、E,乙队为 J、K、L、M、

N,经过抽签决定比赛配对名单。规定 A 不和 J 比赛,M 不和 D 及 E 比赛。列出所有可能 的比赛名单。

解:这是一个组合问题,使用穷举法。共有 5 个位置,设甲队 5 名队员位置不变,乙队改变 队员位置,进行配对。注意第 1 个位置可在 5 个队员中任选一个,以后的位置必须扣除已选 过的队员。并扣除不能配对的情况,即得所有可能的比赛名单。

#include void main(){

char st1[5]={'A','B','C','D','E'},st2[5]={'J','K','L','M','N'}; int i=0,j,k,l,m,n;

for(j=0;j<5;j++){//0号位

if(j==0) continue;//A不与J比赛,即st1[0]不与

st2[0]比赛

for(k=0;k<5;k++){//1号位

if(k==j) continue; for(l=0;l<5;l++){//2号位

if(l==j||l==k) continue;

for(m=0;m<5;m++){//3号位

if(m==j||m==k||m==l)

continue;

if(m==3) continue;//M不与D比赛,即st1[3]不与st2[3]比赛

for(n=0;n<5;n++){//4号位 if(n==3) continue;//M不与E比赛,即st1[4]不与st2[3]比赛

if(n==j||n==k||n==l||n==m) continue;

cout<

cout<

cout<

cout<

3.15 编程模拟选举过程。假定四位候选人:zhang、wang、li、zhao,代号分别为 1、2、3、

4。选举人直接键入候选人代号,1~4 之外的整数视为弃权票,-1 为终止标志。打印各位候 选人的得票以及当选者(得票数超过选票总数一半)名单。 解:用 5 个元素的整型数组,分别放弃权票和各候选人的得票,然后用开关语句打印。

#include #include void main(){

enum candidate{feipiao,zhang,wang,li,zhao}cand; int vote[5]={0},i,k=0,n;

cin>>n;

while(n!=-1){

k++;

if(n>=1&&n<=4) vote[n]++; else vote[0]++; cin>>n; }

for(i=0;i<5;i++){ c

and=(candidate)i; switch(cand){ case feipiao:

cout<

if(vote[cand]>k/2) cout<<\当选\else cout<

case wang:cout<

if(vote[cand]>k/2) cout<<\当选\

第二章 基本控制结构程序设计习题

else cout<

li:cout<k/2) cout<<\当选\else cout<

case zhao:cout<

if(vote[cand]>k/2) cout<<\当选\else cout<

3.16 改造【例 3.11】,将运行结果(Fibonacii 数列的前 20 项)存入文件。 解:采用 3 步法。首先建立或打开一个输出文件,并与磁盘文件联系:

ofstream ofile(\再按一定格式存

入数据:ofile<

ifstream ifile(\再

按同一格式读入数据:ifile>>i>>j>>k>>l;等,并输出 最后关闭文件:file.close(); #include #include const int m=20; void main(){

int fib0=0,fib1=1,fib2,i,j,k,l; char ch,a[256];

ofstream ofile(\ofile<

fib2=fib0+fib1;

ofile<

} ofile.close(); cout<<\是否要将文件输出?Y或N\if(ch=='y'||ch=='Y'){

ifstream ifile(\while(1){

ifile>>i>>j>>k>>l;//由文件读入

11

第二章 基本控制结构程序设计习题 12

if(ifile.eof()!=0) break;

cout<

//屏幕显示

}

ifile.close(); }

}

3.17 改造【例 3.16】,将运行结果(100 以内素数)存入文件。 解:采用 4 步法。首先定义一个输出文件:ofstream ofile; 再打开该文件并与并与磁盘文件联系:

ofile.open(\按一定格式把数据存入文件。最后关闭文件。效果与 3 步法相同。 读文件同样可用 3 步法或 4 步法。

#include #include #include const int n=100; void main(){

int a[n],i,j; char ch,b[256]; ofstream ofile; ifstream ifile;

for(i=0;i

if(a[i]==0) continue; //该数已经置0,判断下一个数

for(j=i+1;j

ofile.open(\t\int count=0;

ofile<<\之间的素数:\for(i=0;i

if(a[i]!=0){ ofile<

tw(6)<

if(count==0) ofile<

pen(\i=0;

while(ifile.get(b[i])){//不可用>>,它不能读白字符,

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++程序设计(第二版_吴乃陵_况迎辉)课后答案(3)在线全文阅读。

C++程序设计(第二版_吴乃陵_况迎辉)课后答案(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/408708.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: