c语言flag
发布网友
发布时间:2022-04-22 00:18
我来回答
共3个回答
热心网友
时间:2022-03-31 16:51
逻辑上有点小小的问题。
你的第二个循环正是在此有点小问题,
因为任何数都能被1整除,所以flag总是被赋值成1
所以下面的if(flag==0)中的语句不会被执行
热心网友
时间:2022-03-31 18:09
#include
"stdio.h"
#include
"math.h"
main()
{
int
m,i,flag,n=0;
for(m=101;m
{
flag=0;
for(i=1;i
if(i%m==0)
//一般发现不了
{
flag=1;
break;
}
if(flag==0)
{
printf("%d
",m);
n++;
if(n%7==0)
printf("\n");
}
}
}
错误好隐蔽啊!!!只有一个很小的错误。%这个符号没用好》
热心网友
时间:2022-03-31 19:43
for(i=1;i<=(int)sqrt(m);i++)
if(m%i==0)
{flag=1;break;}
这个for循环里的i不能从1开始,
否则if里的m%i==0在i=1时恒成立,所以直接进入if,设置flag然后跳出for
这是计算素数的吧?
把i的初始值改成2就好了