#include<stdio.h>
#include<math.h>
int main()
{
int i,j,n,a[101];//求100以内的素数
for(i=1;i<101;i++)
a[i]=i;
a[1]=0;
for(i=2;i<sqrt(100);i++)
for(j=i+1;j<101;j++)
{
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;
}
printf("\n");
for(i=2,n=0;i<101;i++)
{
if(a[i]!=0){
printf("%5d",a[i]);
n++;
}
if(n==0){
printf("\n");
return 0;
}
}
}
为什么if(a[i]!=0&&a[j]!=0)不能省略,a[i]和a[j]貌似都取不到0
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- CSDN专家-sinJack 2022-02-07 18:46关注
等于0的话,取余数就没意义了
初始化数组的时候,a[1]=0本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 1无用