「已注销」 2022-02-07 18:39 采纳率: 100%
浏览 66
已结题

为什么if(a[i]!=0&&a[j]!=0)不能省略,a[i]和a[j]貌似都取不到0

#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;
}
}
}

  • 写回答

4条回答 默认 最新

  • CSDN专家-sinJack 2022-02-07 18:46
    关注

    等于0的话,取余数就没意义了
    初始化数组的时候,a[1]=0

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月15日
  • 已采纳回答 2月7日
  • 创建了问题 2月7日