搜索
查看: 1186|回复: 8
打印 上一主题 下一主题

众高手,初级循环题目,求助啊

[复制链接]
跳转到指定楼层
楼主
发表于 2014-5-18 21:58:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
求分数序列2/1,3/2,5/3,8/5,13/8,21/13…..20项之和
解题如下:
情形1:输出函数在for内循环之外
#include<stdio.h>
int main()
{
int fz=2,fm=1,i,t;
float s=0;
for(i=1;i<=20;i++)
{s=s+fz/fm;
t=fz;
fz+=fm;
fm=t;}
printf("s=%-10.2f",s);return 0;
}
执行结果:file:///C:/Users/hj/AppData/Local/Temp/msohtml1/01/clip_image002.jpgs=21.00
情形2:输出函数在FOR内循环之内fz+=fm;
fm=t;
printf("s=%-10.2f",s); }return 0;
执行结果:
file:///C:/Users/hj/AppData/Local/Temp/msohtml1/01/clip_image004.jpg
以上错解?原因?
求正解????谢谢啦

沙发
发表于 2014-5-19 09:44:03 | 只看该作者
情形2. 20个s都等于0.00
板凳
发表于 2014-5-20 14:10:50 | 只看该作者
int 改为float定义
地板
 楼主| 发表于 2014-5-21 22:10:02 | 只看该作者
李掌柜 发表于 2014-5-19 09:44
情形2. 20个s都等于0.00

高手  能帮忙改一下  或是给一个正确的程序
5#
 楼主| 发表于 2014-5-21 22:10:48 | 只看该作者
lexou 发表于 2014-5-20 14:10
int 改为float定义

高手  能帮忙改一下  或是给一个正确的程序
6#
发表于 2014-6-11 18:40:31 | 只看该作者
我不怎么会懂,但是我知道百度有
7#
发表于 2014-6-11 19:21:03 | 只看该作者
}要上下对齐 ,你没有system("pause");
8#
发表于 2014-6-16 22:19:01 | 只看该作者
完整代码如下,请参考:
#include<stdio.h>

int main(void)
{
        int fz = 2;
        int fm = 1;
        int i;
        int t;
        double s = 0;
        for(i=1; i<=20; i++)
        {
                //s=s+fz/fm;        //这样可以,但是效率低
                s += 1.0*fz/fm;        //1.0是为了把fz/fm转换成实数
                t = fz;
                fz += fm;
                fm = t;
        }
        printf("s=%-10.2f",s);

        return 0;
}
9#
发表于 2014-7-8 10:21:15 | 只看该作者
为毛没缩进
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表