flag=1的作用是什么
偷走时光的蜗牛 初级粉丝 2016-01-25 16:32:56
4198 3 0

#include<stdio.h>

#include<math.h>

main()

{

int i,n,flag=0;

printf("请输入一个大于1的整数:");

scanf("%d",&n);

for(i=2;i<=sqrt(n);i++)

{

if(n%i==0)

flag=1;

}

if(flag==0)

printf("%d是质数\n",n);

else

printf("%d不是质数\n",n);

}


问题来自: 质数

共 3 个回答

    XFChen 资深达人 3019天前

    flag是用来做最后的判断的,一个“标志”。如果输入的n除以任何一个非1的i值余数为零,则flag = 1,在程序的最后的if语句中,如果flag为0,则输出n是质数,否则输出n不是质数。

    XFChen 资深达人 3019天前

    你可以再理一下程序的逻辑,很好明白。

    嘿嘿大人 一代宗师 3019天前

    要分析一个变量的作用,第一步先看它在哪里改变的:

    flag初值是0;




    blob.png这里发生了改变,然后再去看改变的原因是什么是n%i==0成立,如果n%i==0成立说明了什么,说明了n有了i这个因数,说明了n不是质数了;

    第二步,改变后的变量用在了什么地方:




    blob.png用在了这里,如果flag没有发生改变就是0,也就是没有执行




    blob.png这段语句里面的flag=1,所以它就是质数,所以这里执行



    blob.png输出是质数,如果在这段语句里面发生了改变,flag变为了1,那么就执行




    blob.png也就是输出不是质数;

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

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题