c-C程序设计(第四版)习题5-10

问题描述

C程序设计(第四版)习题5-10

求分数序列
2/1 +3/2+5/3+8/5+13/8+21/13...
前20项之和。

我这样的代码为什么不对啊?输出是21.00000000 答案输出是32.6602607986

 #include <stdio.h>
int main()
{
    int fenzi(int n);
    int fenmu(int m);
    int i;
    float s=0,tem;
    for(i=1;i<=20;i++)
    {
        tem=fenzi(i)/fenmu(i);
        s=s+tem;
    }
    printf("%f",s);
    return 0;
}
int fenzi(int n)
{
    if(n==1) return 2;
    else if(n==2) return 3;
    else return (fenzi(n-2)+fenzi(n-1));
}
int fenmu(int m)
{
    if(m==1) return 1;
    else if(m==2) return 2;
    else return (fenmu(m-2)+fenmu(m-1));
}

解决方案

 // ConsoleApplication1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

int fenzi(int n);
int fenmu(int m);

int main()
{
    int i;
    float s = 0, tem;
    for (i = 1; i <= 20; i++)
    {
        tem = (double)fenzi(i) / (double)fenmu(i);
        s = s + tem;
    }
    printf("%f", s);
    return 0;
}
int fenzi(int n)
{
    if (n == 1) return 2;
    else if (n == 2) return 3;
    else return (fenzi(n - 2) + fenzi(n - 1));
}
int fenmu(int m)
{
    if (m == 1) return 1;
    else if (m == 2) return 2;
    else return (fenmu(m - 2) + fenmu(m - 1));
}

解决方案二:

你都用int当然不对,要用float double

解决方案三:

你都用int当然不对,要用float double

解决方案四:

32.660263Press any key to continue . . .

解决方案五:

楼主所有想输出float的地方都被省略成int了,重新看一下关于float的说明

时间: 2024-10-29 08:57:55

c-C程序设计(第四版)习题5-10的相关文章

IBM-PC汇编语言程序设计(第二版)习题3.36疑似错题。

问题描述 IBM-PC汇编语言程序设计(第二版)习题3.36疑似错题. 原题干如下: 假设X和X+2单的内容为双精度p,Y和Y+2单元的内容为双精度数q,X和Y为低位字,试说明下列程序段做什么工作? MOV DX, X+2 MOV AX, X ADD AX, X ADC DX, X+2 CMP DX, Y+2 JL L2 JG L1 CMP AX, Y JBE L2 L1: MOV AX,1 JMP SHORT EXIT L2: MOV AX,2 EXIT: INT 20H 接下来是习题解: 此

《UNIX/Linux 系统管理技术手册(第四版)》——1.15 习题

1.15 习题 UNIX/Linux 系统管理技术手册(第四版) E1.1 应该使用什么命令读终端驱动程序tty(不是tty命令)?应该怎样阅读保存在/usr/local/share/man中的tty本地手册页? E1.2 在您的站点上,有一个系统级的配置文件来控制man的行为吗?如果想要在/doc/man中保存本地的文档,应该在这个文件中加入哪些行?要在/doc/man中使用怎样的目录结构才能让它成为man手册页层次结构中的一部分? E1.3 Linux内核的当前发展状态如何?热点问题是什么?

《UNIX/Linux 系统管理技术手册(第四版)》——2.8 习题

2.8 习题 UNIX/Linux 系统管理技术手册(第四版) E2.1 UNIX允许文件名里有空格.怎样找出名字里有空格的那些文件?如何删除它们?bash.Perl和Python都能很好地处理文件名中的空格吗?否则的话,需要预先注意什么特别之处?列出一些编写脚本所适用的法则. E2.2 编写一个简单的bash**脚本(或者两个脚本),备份和恢复你的系统. E2.3 编写一个Perl或者Python脚本,利用正则表达式,分析date**命令生成的日期格式(例如,Tue Oct 20 18:09:

java-Java语言程序设计第八版基础篇的编程练习

问题描述 Java语言程序设计第八版基础篇的编程练习 为什么按照下面的运行实例的数进行输入所得的结果却不同import java.util.Scanner; public class FutureInvestmentValue { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print(""Enter investment amount:"

c++ primer第四版的Sale_item头文件的疑问

问题描述 c++ primer第四版的Sale_item头文件的疑问 谁有c++primer第四版的Sales_item头文件?为什么我在官网上下载的头文件中没有same_isbn函数呀 解决方案 百度一下 Sales_item.h 就有 解决方案二: 你最好看看你看的这章节的前面,有可能这个类是自己写的,然后调用他的头文件 解决方案三: http://www.cnblogs.com/suda/archive/2012/03/31/2427114.html 解决方案四: 第七章 函数 习题7.3

《UNIX/Linux 系统管理技术手册(第四版)》——2.2 bash脚本编程

2.2 bash脚本编程 UNIX/Linux 系统管理技术手册(第四版) bash特别适合编写简单的脚本,用来自动执行那些以往在命令行输入的操作.在命令行用的技巧也能用在bash的脚本里,反之亦然,这让用户在bash上投入的学习时间获得了最大的回报.不过,一旦bash脚本超过了100行,或者需要的特性bash没有,那么就要换到Perl或者Python上了. bash脚本的注释以一个井号(#)开头,并且注释一直延续到行尾.和命令行中一样,可以把逻辑上的一行分成多个物理上的多行来写,每行末尾用反斜

MySQL数据库主从同步第四版

MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服 务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出现问题时,可以切换到从服务器.所以我在项目部署和实施中经常会采用这 种方案;鉴于生产环境下的mysql的严谨性,我这里推荐采用张宴兄的MySQL源码编译的方法. 第④版更新内容如下: 一.增加了mysql5.1.38的编译安装过程,安装过程仍然采用张宴早期安装mysql的方法,摈弃了用脚本控制的办法; 二.从库

《UNIX/Linux 系统管理技术手册(第四版)》——第2章 脚本和shell 2.1 shell的基础知识

第2章 脚本和shell 好的系统管理员都要写脚本.脚本以标准和自动的方式履行系统管理员的繁杂事务,藉此把管理员的时间节省出来,以花在更重要和更有意思的任务上.从某种意义上讲,脚本也是一种低质量的文档,因为它们充当了一种权威提纲,提纲里列出完成特殊任务所需的步骤. 从复杂性来看,系统管理脚本的范围很广,小到一个脚本,简单得只封装几条静态命令,大到一个重要的软件项目,为整个站点管理主机配置和管理性数据.在本书里,我们所感兴趣的主要是系统管理员通常会碰到的较小的日常脚本项目.因此,对于较大项目才需要

《UNIX/Linux 系统管理技术手册(第四版)》——2.7 推荐读物

2.7 推荐读物 UNIX/Linux 系统管理技术手册(第四版) BROOKS, FREDERICK P., JR. The Mythical Man-Month: Essays on Software Engineer- ing. Reading, MA: Addison-Wesley, 1995. Shell基础知识和bash脚本编程 ALBING, CARL, JP VOSSEN, AND CAMERON NEWHAM.Bash Cookbook. Sebastopol, CA: O'R