关于素数的一个问题
程序代码:#include<stdio.h>
#include<math.h>
int main(void)
{
int m,i,flag=1;
printf("请输入一个数据:\n");
scanf("%d",&m);
for(i=2;i<=m/2;i++)
{
if(m%i==0)
{
flag=0;
break;
}
}
if(flag==1)
printf("%d是素数\n",m);
else (flag==0);
printf("%d不是素数\n",m);
return 0;
}
这里为什么输出变成如下的呢?
一旦if(flag==1)
printf("%d是素数\n",m);
else (flag==0);
printf("%d不是素数\n",m);
改成flag?printf("%d是素数\n",m):printf("%d不是素数\n",m);就OK了,这两种表达方法不一样吗?








去年刚学c时犯过一样的错误,找了好长时间呢。