好文档 - 专业文书写作范文服务资料分享网站

C语言程序设计_第三版_谭浩强主编第6—8章课后习题答案

天下 分享 时间: 加入收藏 我要投稿 点赞

{

if((j%i)==0) { n++; s=s-i;

k[n]=i;/*将每个因子赋给k0,k1...k9*/ } }

if(s= =0) {

printf(\是一个完数,它的因子是:\ for(i=0;i

6.8 有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20项之和. 解:

#include void main() {

int n,t,number=20; float a=2,b=1,s=0;

for(n=1;n<=number;n++) {

s=s+a/b;

t=a,a=a+b,b=t; }

printf(\总和=%9.6f\\n\ }

编译已通过=32.660259 6.9球反弹问题 #include void main() {

float sn=100.0,hn=sn/2; int n;

for(n=2;n<=10;n++) {

sn=sn+2*hn;/*第n次落地时共经过的米数*/ hn=hn/2;/*第n次反跳高度*/ }

printf(\第10次落地时共经过%f米 \\n\ printf(\第10次反弹%f米.\\n\ }

编译已通过

经过299.609375m 反弹0.097656m 6.10猴子吃桃问题 #include void main() {

int day,x1,x2; day=9; x2=1;

while(day>0) {

x1=(x2+1)*2; x2=x1; day--; }

printf(\桃子总数=%d\\n\ }

编译已通过=1534

上面的程序是从最后一天计算,一直到第一天。当while第一次循环,既day=9的时候,X1此时计算的是第9天的桃子数。而X2既是X1前一天的桃子数。计算出第9天的桃子数后,把X1的值赋值给X2,那么X2此时X2就表示第9天的桃子数,再通过while的循环,可以逐步求出第7天,第6天...一直到第一天的桃子数. 这里X2=X1,就是一个赋值的过程,为的是求前一天的桃子数.

6.11用迭代法求x= 。求平方根的迭代公式为: 要求前后两次求出的差的绝对值小于0.00001。

#include #include void main() {

float x0,x1,a; scanf(\ x1=a/2; do {

x0=x1;

x1=(x0+a/x0)/2;

}while(fabs(x0-x1)>=0.00001); printf(\ } 编译已通过

6.12 用牛顿迭代法求方程在1.5附近的根。 #include void main() {

double x,y;x=1.5; do {

y=2*x*x*x-4*x*x+3*x-6; x=x-y/(6*x*x-8*x+3); }while(y!=0);

printf(\ } 编译已通过x=2.000

6.13用二分法求方程在(-10,10)之间的根: #include void main() {

double x1,x2,y1,y2;x1=-10;x2=10; do {

y1=2*x1*x1*x1-4*x1*x1+3*x1-6; x1=x1-y1/(6*x1*x1-8*x1+3); }while(y1!=0); do {

y2=2*x2*x2*x2-4*x2*x2+3*x2-6; x2=x2-y2/(6*x2*x2-8*x2+3); }while(y2!=0);

printf(\ }

编译已通过

x1=2.000,x2=2.000 6.14打印图案 #include void main() {

int i,j,k;

for(i=0;i<=3;i++) {

for(j=0;j<=2-i;j++) printf(\

for(k=0;k<=2*i;k++) printf(\ printf(\ }

for(i=0;i<=2;i++) {

for(j=0;j<=i;j++) printf(\

for(k=0;k<=4-2*i;k++) printf(\ printf(\ }}

编译已通过 6.15乒乓比赛 #include void main() {

char i,j,k; /*i是a的对手;j是b的对手;k是c的对手*/ for(i='x';i<='z';i++) { for(j='x';j<='z';j++) { if(i!=j) for(k='x';k<='z';k++) { if(i!=k && j!=k) { if(i!='x' && k!='x' && k!='z') printf(\顺序为:\\na--%c\\tb--%c\\tc--%c\\n\ } } }} }编译已通过

7.1用筛选法求100之内的素数. /*用筛选法求100之内的素数*/ #include #define N 101 void main()

{int i,j,line,a[N];

for(i=2;i

11 printf(\

for(i=2,line=0;i

{printf(\ line++; if(line==10) {printf(\ line=0;} }

21 }

6,11,21没通过

7.2用选择法对10个数排序. /*选择法排序.*/ #include #define N 10 void main()

{ int i,j,min,temp,a[N]; /*输入数据*/

printf(\请输入十个数:\\n\ for (i=0;i

printf(\ for(i=0;i

for (i=0;i

for(j=i+1;ja[j]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; }

/*输出*/

printf(\排序结果如下:\\n\ for(i=0;i

编译已通过 7.3对角线和:

/*计算矩阵对角线元素之和*/ #include #include void main() {

int a[3][3];

int i,j;//i为行j为列 int sum=0; int sum1=0; //输入

19gfz4pwqt7yogl1itk20zdc523y3q00i11
领取福利

微信扫码领取福利

微信扫码分享