鱼C论坛

 找回密码
 立即注册
查看: 5982|回复: 11

求助一道题郁闷了好久解不出来

[复制链接]
发表于 2012-11-8 01:01:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
有个数列:1/2 ,4/2, 8/3, 16/5, 32/8, 64/13, 128/21,用c语音求该数列的前15项之和,“15”由键盘输入
我写的程序是这样的:
# include <stdio.h>
int main (void)
{
        int a=2, b=1, c, d=0, i;
        double e = 0, f=0;
        scanf ("%d", &c);
        for (i=1;i<c;i++)
        {
                a = a * 2;
                b = b + d;
                d = b;
                e = (1.0*a)/(1.0*b);
                f = f + e;
        }
       
        printf ("%lf", f);

        return 0;
}

但运行结果无论输入值为多少结果小数位全部都为零,求指教。谢了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-8 09:34:54 | 显示全部楼层
你的第一项写错了吧,应该是2/1吧
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-8 10:39:49 | 显示全部楼层
  1. #include <iostream>
  2. #include <MATH.H>

  3. float GetCount(int count)
  4. {
  5.         int tmpB1 = 0;
  6.         int tmpB2 = 1;
  7.         float total = 0.0f;
  8.         for (int i=0; i<count; i++)
  9.         {
  10.                 int a,b;//a是分子,b是分母
  11.                 float c;//c是a\b

  12.                 a = pow(2,(i + 1));
  13.                 b = tmpB1 + tmpB2;

  14.                 tmpB1 = tmpB2;
  15.                 tmpB2 = b;

  16.                 c = (float)a / (float)b;

  17.                 total += c;
  18.         }
  19.         return total;
  20. }

  21. int main(int argc, char* argv[])
  22. {
  23.     cout << "================begin===============" << endl;
  24.         cout<<"total = "<<GetCount(15)<<endl;
  25.     return 0;
  26. }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-11-8 12:37:20 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-11-8 12:38:05 | 显示全部楼层
友来友网 发表于 2012-11-8 09:34
你的第一项写错了吧,应该是2/1吧

嗯,第一个是打错了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-8 14:46:29 | 显示全部楼层
crj 发表于 2012-11-8 12:37
哥您这个是用c语言写的吗,好多代码看不懂

是c++写的啊,哪里不懂?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-8 16:52:11 | 显示全部楼层
# include <stdio.h>
int main (void)
{
         int a=2 ;
         double e = 0;
         scanf ("%d", &c);
         for (int i=1;i<=c;i++,a*=2)
         {
   
                 e += (1.0*a)/(1.0*i);
               
         }
         
         printf ("%lf", e);

         return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-11-8 16:55:13 | 显示全部楼层
_思緒亂 发表于 2012-11-8 14:46
是c++写的啊,哪里不懂?

额,我是要c语言的程序
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-8 17:35:45 | 显示全部楼层
  1. #include <STDIO.H>
  2. #include <MATH.H>

  3. float GetCount(int count)
  4. {
  5.         int i;
  6.     double tmpB1 = 0.0;
  7.     double tmpB2 = 1.0;
  8.     float total = 0.0f;
  9.     for (i=0; i<count; i++)
  10.     {
  11.             double a,b;//a是分子,b是分母
  12.             float c;//c是a\b

  13.             a = pow(2,(i + 1));
  14.             b = tmpB1 + tmpB2;

  15.             tmpB1 = tmpB2;
  16.             tmpB2 = b;

  17.             c = (float)a / (float)b;
  18.                        
  19.             total += c;
  20.     }
  21.     return total;
  22. }

  23. int main(int argc, char* argv[])
  24. {
  25.         printf("%f\n", GetCount(15));
  26.     return 0;
  27. }
复制代码
C语言写的了,跟C++写的没多大区别

小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-11-8 21:31:53 | 显示全部楼层
小马过河 发表于 2012-11-8 16:52
# include
int main (void)
{

这个编译错误啊
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-11-8 21:46:21 | 显示全部楼层
_思緒亂 发表于 2012-11-8 17:35
C语言写的了,跟C++写的没多大区别

嗯,谢谢了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-9 22:11:10 | 显示全部楼层
  • # include <stdio.h>
  • int main (void)
  • {
  •         int a=2,ax=2,c;
  •         int tmp=0,b=1;
  •         double e = 0;
  •         scanf ("%d", &c);
  •         for (int i=1;i<=c;i++,ax*=2)
  •         {
  •                 if(i==1||i==2)
  •                         e+=2;
  •                 else
  •                 {
  •                         tmp=a;
  •                         a+=b;
  •                         b=tmp;
  •                         e=e+double(1.0*ax/a) ;
  •                 }
  •         }
  •         printf ("%lf", e);
  •         return 0;
  • }

小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-10 07:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表