鱼C论坛

 找回密码
 立即注册
查看: 2616|回复: 8

新手!求助这段代码是怎么运算的。

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

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

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

x
本帖最后由 6947853085 于 2011-12-19 09:59 编辑
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int a,n;
  5.         scanf("%d",&n);
  6.         for(a = 0; n /= 5; a += n );
  7.         printf("%d\n", a);
  8.         return 0;
  9. }
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-12-8 11:44:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-12-8 11:50:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-12-8 11:58:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-8 13:03:25 | 显示全部楼层
for(a = 0; n /= 5; a += n );
n /= 5等价于n = n / 5,意思是求模,例如当输入n = 4时, n = 0,当输入n = 10时,n = 2,然后执行       a += n(等价于a = a + n),因为a的初值为0,所以按上面所说的n值时,输出的a的值得应是0或者2。
注意:for函数后面的分号表明循环后面的是空语句。
这个程序也等价于下面的程序:
#include <stdio.h>

int main()
{
        int a = 0,n;
        scanf("%d",&n);
//        for(a = 0; n /= 5; a += n );
                while(n /= 5)
                {
                        a +=n;
                }
        printf("%d\n", a);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-8 13:08:35 | 显示全部楼层
你的for循环在哪里循环的
你后面直接加了分号相当于只运算a=0, n/=5, a+=n
相当于直接打印N/=5这个值

如果要循环请把printf语句用{  }括起来,把for后面分号去掉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-8 13:21:43 | 显示全部楼层
当输入n>=25时,他的输出结果呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-12-8 13:38:48 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-8 15:46:18 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-25 07:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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