100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 《C语言程序设计(第三版)》苏小红 习题六 答案

《C语言程序设计(第三版)》苏小红 习题六 答案

时间:2018-07-28 12:18:23

相关推荐

《C语言程序设计(第三版)》苏小红 习题六 答案

最近在复习C语言,顺便记录下课后习题。代码是自己打的,有些繁琐而笨拙,请多多包涵,有错误欢迎指正。

6.4 键盘输入n,输出1到 n之间 所有数的平方、立方

#include <stdio.h>int main(){ long n,i;scanf("%ld",&n);for(i=1;i<=n;i++){printf("%ld的平方为%d,立方为%d\n",i,i*i,i*i*i);}return 0;}

6.5 每隔10摄氏度 输出0-300摄氏度之间的华氏温度对照

#include <stdio.h>int main(){ double C;int F;for(F=0;F<=300;F+=10){C=5.0/9*(F-32);printf("华氏%d度是摄氏 %.2lf 度\n",F,C);}return 0;}

6.6 设银行一年整存零取的月息为 1.875%,现在某人手头有一笔钱,他打算在今后 5 年中,每年年底取出 1000 元作为孩子来年的教育金,到第 5 年孩子毕业时刚好取完这笔钱。求第一年存入银行多少钱。

整存零取:是指在开户时约定存款期限、本金一次存入,固定期限分次支取本金的一种定期储蓄,1000元起存,存期分一年、三年、五年,支取期分一个月、三个月及半年一次。

思路:倒着算,已知最后取出1000,也就是最后一年有1000元。

此处按照复利法计算

本息和=本金+利息=本金+本金*利率=本金*(1+利率)

本金=本息和/(1+利率)

#include <stdio.h>#include<math.h>#define p 12*0.01875int main(){ double sum=0;int i; for(i=0;i<5;i++) {sum=(sum+1000)/(1+p);}printf("第一年存入 %.2lf元",sum);}

6.7 假设今年工业产值为100万元,产值增产率从键盘输入,请编程计算工业产值经过多少年可以实现翻一番(即增加1倍)

#include <stdio.h>#include<math.h>int main(){ double p,sum=100;scanf("%lf",&p);//小数形式输入 int i; for(i=1;;i++) {sum=sum*(1+p);if(sum>=200)break;}printf("%d年后可实现翻一番",i);return 0; }

6.8 利用π/4=1-1/3+1/5-1/7,,计算π的值直到最后一项的绝对值小于0.0001为止,要求统计总共累加了多少项。

#include <stdio.h>#include<math.h>#define EPS 1e-4int main(){ double sum=0,term=1;//sum累加的和, term 每一项 int count=1,i=1,sig=1;//count 加了几项 ,sig 每项符号 while(fabs(term)>=EPS){sum+=term;sig=-sig;i+=2;term=1.0/i*sig;count++;}sum*=4;printf("π约为%lf,累加了 %d项",sum,count);return 0; }

6.9 利用 e = 1 + 1 / 1! + 1 / 2! + 1 / 3! + 1 / 3! + 1 / 4! + .... + 1 / n! 编程计算e的近似值。

#include <stdio.h>#include<math.h>#define EPS 1e-5int main(){ double sum=1,term=1;//sum累加的和, term 每一项 int count=1;//count 加了几项 while(fabs(1/term)>=EPS){term*=count;sum+=1.0/term;count++;}printf("e约为%lf,累加了 %d项",sum,count);return 0; }

6.10 输出全部三位数水仙花

#include <stdio.h>int main(){ int i,a=0,b=0,c=0;for(i=10;i<1000;i++){a=i/100;b=(i-a*100)/10;c=i%10;if(a*a*a+b*b*b+c*c*c==i)printf("%d\n",i);}return 0;}

6.11 已知不等式:1!+2!+···+m!<n,请计算并输出满足该不等式的m的整数解。

#include <stdio.h>int main(){ int i,sum=0,n,term=1;scanf("%d",&n);for(i=1;sum<n;i++){term*=i;sum+=term;if(sum>=n) break;}printf("m=%d",i-1);return 0;}

6.12 输入一些正数,输出这些正数的和,输入为负或零时,退出。

#include <stdio.h>int main(){ int i,sum=0,n;while(scanf("%d",&n)!=EOF){if(n>0)sum+=n;elsebreak;}printf("整数和为%d",sum);return 0;}

6.13输入一些正数,输出这些正数的和,输入为负时,不累加,输入零时,退出。

#include <stdio.h>int main(){ int i,sum=0,n;while(scanf("%d",&n)!=EOF){if(n>0)sum+=n;else if(n==0) break;}printf("整数和为%d",sum);return 0;}

6.14 马克思手稿中有这样一道趣味数学题:男人、女人和小孩总计30个人,在一家饭店里吃饭,共花了50先令,每个男人各花3先令,每个女人各花2先令,每个孩子各花1先令,请用穷举法编程计算男人、女人和小孩各有几人,列出所有可能的组合。

#include <stdio.h>int main(){ int man,woman,kid;for(man=0;man<=30;man++){for(woman=0;woman<=30;woman++){for(kid=0;kid<=30;kid++){if(man+woman+kid==30&&man*3+woman*2+kid==50)printf("男人有%d个,女人有%d个,小孩有%d个\n",man,woman,kid);}}} return 0;}

6.15 鸡兔同笼,共有98个头,386只脚,穷举法计算鸡、兔各有多少只。

#include <stdio.h>int main(){ int chicken,rabbit;for(chicken=0;chicken<=98;chicken++){for(rabbit=0;rabbit<=98;rabbit++){if(chicken+rabbit==98&&chicken*2+rabbit*4==386)printf("鸡有%d只,兔有%d只\n",chicken,rabbit);}}return 0;}

6.16 百元买百鸡 “公鸡5元一只,母鸡3元一只,雏鸡一元3只,百钱买百鸡,问鸡翁、母、雏各几只?”

#include <stdio.h>int main(){ int i,j,k;for(i=0;i<=100;i++){for(j=0;j<=100;j++){if((100-i-j)%3==0&&5*i+3*j+(100-i-j)/3==100)printf("公鸡有%d只,母鸡有%d只,小鸡有%d只\n",i,j,(100-i-j));}} return 0;}

6.17 100元兑换人民币10元、5元、1元(每一种都要有)共50张,穷举法计算有多少种方案,每种方案兑换几张纸币。

#include <stdio.h>#include<math.h>#define EPS 1e-5int main(){ int i,j,k,count=0;for(i=1;i<=10;i++){for(j=1;j<=20;j++){for(k=1;k<=50;k++){ if(i+j+k<=50&&10*i+5*j+k==100){ count++;printf("%d.10元:%d张,5元:%d张,1元:%d张 共%d张\n",count,i,j,k,i+j+k);}}}} printf("共 %d种方案",count);return 0;}

6.18 输出乘法口诀表

//第一种#include <stdio.h>int main(){ int i,j,k,count=0;for(i=1;i<=9;i++){printf("%d ",i);}printf("\n");for(i=1;i<=9;i++){printf("- ");}printf("\n");for(i=1;i<=9;i++){for(j=1;j<=9;j++){printf("%-3d",i*j);}printf("\n");}return 0;}//第二种--下三角#include <stdio.h>int main(){ int i,j,k,count=0;for(i=1;i<=9;i++){printf("%d ",i);}printf("\n");for(i=1;i<=9;i++){printf("- ");}printf("\n");for(i=1;i<=9;i++){for(j=1;j<=9;j++){if(i*j<=i*i)printf("%-3d",i*j);}printf("\n");}return 0;}//第三种--上三角#include <stdio.h>int main(){ int i,j,k,count=0;for(i=1;i<=9;i++){printf("%d ",i);}printf("\n");for(i=1;i<=9;i++){printf("- ");}printf("\n");for(i=1;i<=9;i++){for(j=1;j<=9;j++){if(i*j<i*i)printf(" ");elseprintf("%-3d",i*j);}printf("\n");}return 0;}

6.19有一天富豪遇到一个陌生人,富豪每天给陌生人1分,此后每一天给的钱翻倍。陌生人每天给富豪10万。求30天后的陌生人一共给富豪多少钱,富豪一共给陌生人多少钱。

#include <stdio.h>int main(){ int i;float j=0.01,sum2=0.0; int sum1=100000*30; for(i=0;i<30;i++){sum2+=j;j*=2;}printf("陌生人给富人%d元,富人给陌生人%.2f元",sum1,sum2);return 0;}

6.20 一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同; 丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号

#include <stdio.h>int main(){ int i,a,b,c,d,j;for(i=1100;i<=9999;i++){a=i/1000;b=(i-a*1000)/100;c=((i-a*1000)%100)/10;d=i%10;if(a==b&&c==d&&a!=c){ for(j=10;j<100;j++){if(i==j*j)printf("车牌号为%d\n",i);}} }return 0;}

6.21在海军节开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各n响。已知A舰每个a秒放一次,B舰每隔b秒放一次,C舰每隔c秒放一次。假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次炮声。

#include <stdio.h>int main(){ int i,count=0;//枚举每一秒,只要当前有一个舰队在放礼炮,无论是否重合,观众都可听见 for(i=0;i<21*7;i++){if((i%5==0&&i<21*5)||(i%6==0&&i<21*6)||(i%7==0&&i<21*7))count++;}printf("观众可以听到%d次礼炮响声",count);return 0;}

实验题有时间再写o( =•ω•= )m

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。