重力怎么形成:for(i=2,line=0;i<N;i++) ,{ if(a[i]!=0,line=0;i<N;i++) 是什么意思

来源:百度文库 编辑:高校问答 时间:2024/05/08 10:57:49
#include<math.h>
#define N101
main()
{int j,i,line,a[N];
for (i=2;i<N;i++) a[i]=i;
for (i=2;i<sqrt(N);i++)
for (j=i+1;j++)
{ if(a[i]!=0,line=0;i<N;i++)
{if(a[j]%a[i]==0)
a[j]=0;
printf("\n");
for(i=2,line=0;i<N;i++)
{ if(a[i]!=0)
{printf("%5d",a[i]);
line++;
if(line==10)
{printf("\n");
line==0;}
}
}

首先指出 程序有问题
在第7行的FOR()里面缺少一个变量,那里如果没有变量也要用;空出来
例如 for(;;)这个是格式 记住

第二 这个程序的作用是求101一下的所有素数!筛选法
筛选法方法:把数字全部写在纸上,将这个数字用比它小的所有数字除(不能取1),如果除了没有余数(整除),则这个数字不是素数,就划掉,等全部划完了,这张表上面剩下的数字就都是数字了

我将你的程序修改了一些,没有经过编译,你自己看一下

我给你批注一下
#include<math.h> \\头文件,调用MATH.H头文件
#define N101 \\宏定义 定义N=101
main() \\主程序开始
{int j,i,line,a[N]; \\定义变量
for (i=2;i<N;i++) a[i]=i; \\给数组a[]赋值
for (i=1;i<sqrt(N);i++) \\变量i的循环 从1开始 到 N的平方根结束
for (j=i+1;;j++) \\修改了一下 变量j是除数
{
if(a[j]!=0) \\如果a[j]不为零
if(a[j]%a[i]==0) \\求a[j]和a[i]的模 如果余数是零 则将a[j]赋为0
a[j]=0;
}
printf("\n");
for(i=2;i<N;i++) \\循环输出筛选后的素数
{ if(a[i]!=0) \\如果不为0
{printf("%5d",a[i]); \\打印出该数字
line++; \\行数加1
if(line==10) \\每输出10个数字
{printf("\n"); \\换行
line==0;}
}
}