/*输出2-500所有的素数,并且每行输出10个*/
#include<stdio.h>
int main()
{
int n,i,flag,count=0; //为什么在这一行写flag=1,运行不出想要的结果
for(n=2;n<=500;n++)
{
for(i=2,flag=1;i<n;i++) //为什么要在这一行写flag=1
if(n%i==0)
flag=0;
if(flag==1)
{
printf("%5d",n);
count++;
if(count%10==0)
printf("\n");
}
}
return 0;
}
如果写int flag=1 运行结果是2 3
若写在第二个for循环内 则是想要结果
想知道这是什么原因
因为你每次循环都要有一个初始化为1