A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

for (i = 1; scanf("%lf", &x) == 1; ++i) {
____avg += (x - avg) / i;

以及思考如下问题:
这个算法为什么能够计算平均。

有人能帮忙解释下么    说下好处和运行原理

3 个回复

倒序浏览
循环判断条件同时完成了两个工作,一个接收键盘输入值,第二个判断是否继续循环的条件,只要有输入,循环就继续,并且i记录输入的个数值,循环语句,不断重复计算当前平均值,这种写法在我看来是炫技写法,我能看懂,但实际开发中我应该写不出来,我的水平还不够,需要继续努力
回复 使用道具 举报
另外这个算法并不高效,每次都需要做一次除法运算,相对做N次加法再做一次除法运算而言效率较低,这个算法的主要功能是防止溢出

咳咳,以上都是百度来的。。。。
回复 使用道具 举报
代码少并不代表高效的,去看看时间复杂度,和空间复杂度吧,那个好像是来衡量一个算法的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马