关于C语言 if(a[i]!=0 && a[j]!=0) if(a[j]%a[i]==0) a[j]=0;

#include<stdio.h>#include"math.h"#defineN101intmain(void){inti,j,line,a[N];for(i=2;i<... #include <stdio.h>
#include "math.h"
#define N 101
int main(void)
{
int i,j,line,a[N];

for(i=2;i<N;i++) /*数组赋值*/
a[i]=i;

for(i=2;i<sqrt(N);i++)

{
for(j=i+1;j<N;j++)
{
if(a[i]!=0 && a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;
}
}
for(i=2,line=0;i<N;i++) /*输出数组*/
{
if(a[i]!=0) /*数组赋值*/
{
printf("%5d",a[i]);
line++;
}
if(line==10) /*10个换行*/
{
printf("\n");
line=0;
}
}
printf("\n");
return 0;
}

恳请讲讲这一小段的作用和含义

{ if(a[i]!=0 && a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0; }
展开
 我来答
要的就是魅力
2020-05-12
知道答主
回答量:1
采纳率:0%
帮助的人:602
展开全部

在这个地方,让存于数组内的3~100分别除以从2到sqrt(i)的值,以此来判断是否为素数。

前面是从a[2]开始赋值的。需要判断a[i]和a[j]不能为0;后面的则是在一个i的循环内用j——i后面的整数,来除以i,如果除尽了则让a[j]为0;为0了i的话,也需要在第一步的”判断a[i]和a[j]不能为0”的前提下,就可以把除尽的,也就是非素数给排除掉。后面直接把a[j]不为0的输出就是素数了。

匿名用户
2016-09-07
展开全部
题主,先了解代码的需求和功能,算法的原理等。。。。。。。。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式