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

C程序设计课后习题答案14章

来源:用户分享 时间:2025/8/22 23:41:34 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

D D D D D D D C C C C C B B B A

解:分上三角和下三角两部分分别处理左边的空格。 #include using namespace std; int main(){ char in; int i,j; do{

cout<<\输入一个字母:\ cin>>in;

if((in>=97)&&(in<=122)) in-=32;//小写改大写 }while((in<65)||(in>90)); int line=in-'A';

for (i=0;i<=line;i++){//上三角

for(j=line-i;j>0;j--) cout<<\前方空格 for(j=1;j<=2*i+1;j++) cout<<' '<

for (i=line;i>0;i--){//下三角(少一行) for(j=0;j<=line-i;j++) cout<<\

for(j=1;j<=2*i-1;j++) cout<<' '<

2.7输入n,求1!+2!+3!+…+n!

解:通常求和作为外循环,阶乘作为内循环。这里考虑到:n!=n*(n-1)!,利用递推法运算速度大大提高,同时两者可合并为一个循环。本程序考虑了输入的健壮性。

#include #include using namespace std; int main(){ int n,i,jch=1;

double result=0; //result是结果 cout<<\请输入正整数n:\ cin>>n; if(n<1){

cout<<\输入错误!\ return 1; } result=1; for(i=2;i<=n;i++){

jch*=i; //jch是i的阶乘,注意n!=n*(n-1)!这样可少一层循环 result+=jch; }

cout<

2.8猴子吃桃问题:猴子摘下若干个桃子,第一天吃了桃子的一半多一个,以后每天吃了前一天剩下的一半多一个,到第十天吃以前发现只剩下一个桃子,问猴子共摘了几个桃子。

解:采用递推法。从最后一天逆推到第一天,9次循环。 #include

using namespace std; const int day=10; int main(){

int i,x=1;//最后一天只有一个

for(i=1;i

2.9从键盘输入一组非0整数,以输入0标志结束,求这组整数的平均值,并统计其中正数和负数的个数。

解:将这组整数放在整型数组中,一边输入一边求和及统计正数和负数的个数,平均数由和除以整数数量取得。 #include #include using namespace std; int main(){

int stem[256],sum=0,pnum=0,nnum=0,i=0;

cout<<\从键盘输入一组非0整数,以输入0标志结束:\ cin>>stem[i]; while(stem[i]!=0){

sum+=stem[i];//求和

if(stem[i]>0) pnum++;//正数数量 else nnum++;//负数数量 i++; cin>>stem[i]; }

if(!i) cout<<\个数\ else {

cout<<\平均值=\平均值习惯不用整数

cout<<\正数个数=\ cout<<\负数个数=\ } return 0; }

2.10编程找出1?500之中满足除以3余2,除以5余3,除以7余2的整数。

解:中国古代数学问题(韩信点兵),采用穷举法。注意三个条件同时成立用&&。 #include using namespace std; int main(){ int i;

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

if((i%3==2)&&(i%5==3)&&(i%7==2)) cout<

2.11编程求1000之内的所有完全数。所谓完全数指的是一个数恰好等于它的所有因子和。例如6=1+2+3,就是一个完全数。

解:采用穷举法。两重循环,外层是从1到999依次处理,内层是求该数的所有因子的和,并判断是否等于该数。 #include using namespace std; int main(){

int i,a,sum_yz; //sum_yz是a的因子和 for(a=1;a<1000;a++){ sum_yz=0;

for(i=1;i

//求因子运算未改变循环控制变量a的值,否则要用另一个变量b来代

替a来参加运算

if (a==sum_yz) cout<

2.12将100元换成用10元、5元和1元的组合,共有多少种组合方法。 解:采用穷举法。考虑10元最多10张,5元最多20张,余下是1元。 #include using namespace std; int main(){

int i,j,k,count=0;

for(i=0;i<=10;i++)//i是10元张数,j是5元张数,k是1元张数 for(j=0;j<=20;j++){ k=100-10*i-5*j; if(k>=0){

cout<

cout<

2.13利用反正切展开计算?的近似值,要求误差10-5,公式如下: 令x=1,可计算出?/4的近似值。

解:采用递推法。初看每一项的递推通式不易写出,但每一项全看作奇数项,而偶数项全为零,则很容易写出:第1项为x,第3项为第1项乘以x的平方除以项

搜索更多关于: C程序设计课后习题答案14章 的文档
C程序设计课后习题答案14章.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9y9w95xwmr03gjy5zd2f62h6002tp400lb0_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top