0$房天下问答|求2/1+3/2+5/3程序中t是干什么用的$https://m.fang.com/ask/ask_1797352.html$https://static.soufunimg.com/common_m/m_public/201511/images/asksharedefault.png
packc/pages/ask/detail/detail?askid=1797352
-
求2/1+3/2+5/3程序中t是干什么用的
#include <stdio.h>void main(){int i,t,n=20; float a=2,b=1,s=0; for (i=1;i<=n;i++) {s=s+a/b; t=a; a=a+b;/*将前一项分子与分母之和作为下一项的分子*/ b=t;/*将前一项的分子作为下一项的分母*/ } printf("sum=%9.6f\n",s);} 我能大概知道这个程序的意思,但是我在看到t=a;a=a+b;b=t;这里就不是很懂了,它与那个t=a;a=b;b=t;交换两个数的程序有什么联系和区别啊?不好意思,我这个人爱问一些细节问题,这个问题我想过很久了,希望哪位高手能帮我回答一下,谢谢了。
更多
提问者:MwddLJXURRppbFlIy
发布于2011-01-18
共1个回答
-
-
-
wcq000
丨Lv 1
t=a;a=a+b;b=t;这几句是因为这个程序的算法的要求。这个并不是简单的交换。你上面的注释都已经写清楚了,a值为分子,b值为分母,a值为上一次的a值和上一次b值的和,即a=a+b;此时a值已经改变了。而b值应为上一次的a值,而a值已经改变了!所以需要有一个变量在a值改变之前将数据保存起来,所以就定义了一个变量t,使t值等于a值,即t=a;然后在a值改变后,将t值赋给b,即b=t;以上的三个表达式可以用另一种方法表达:t=b;b=a;a=a+t;原理跟以上相同。
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。

关注成功