为什么这段程序中的s=1不可以把它放在一开始int s=1?两个位置结果完全不同。
匿名课官 知名达人 2017-03-05 21:43:53
2983 1 0

#include <stdio.h>

#include <stdlib.h>

main()

{

      int n,i,s;

      while(1)

     {

         system("cls");

         s=1;

         printf("请输入一个整数:");

        scanf("%d",&n);

       if(n==0) break;

       for(i=1;i<=n;i++)

         s*=i;

      printf("n!=%d\n",s);

     system("pause");

     }

}

问题来自: break和continue

共 1 个回答

    qqq 资深元老 助教 2629天前

    放在循环外和循环内当然结果不一样了。在循环外,s=1只执行一次,循环一次之后s值就被修改了,再进入循环时就是以修改后的s值循环;但要是在循环内,s=1每一次都会执行,结果当然不同。

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题