啊哈磊_编程从这里起步
标题: 众高手,初级循环题目,求助啊 [打印本页]
作者: LXY 时间: 2014-5-18 21:58
标题: 众高手,初级循环题目,求助啊
求分数序列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
情形2. 20个s都等于0.00
作者: lexou 时间: 2014-5-20 14:10
int 改为float定义
作者: LXY 时间: 2014-5-21 22:10
高手 能帮忙改一下 或是给一个正确的程序
作者: LXY 时间: 2014-5-21 22:10
高手 能帮忙改一下 或是给一个正确的程序
作者: 绝处逢生 时间: 2014-6-11 18:40
我不怎么会懂,但是我知道百度有
作者: 绝处逢生 时间: 2014-6-11 19:21
}要上下对齐 ,你没有system("pause");
作者: CL0419 时间: 2014-6-16 22:19
完整代码如下,请参考:
#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;
}
作者: LeoGuozichuan 时间: 2014-7-8 10:21
为毛没缩进
欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) |
Powered by Discuz! X3.2 |