C语言-素数哪里出了错?????????

来源:百度知道 编辑:UC知道 时间:2024/09/21 19:09:51
#include<stdio.h>
#include<math.h>
void main()
{
int n,i,j,k,a[21],flag,s=0;

for(i=101;i<200;i++)
{
for(j=2;j<=sqrt(i);j++)
{
flag=1;
if(i%j==0)
{
flag=0;
break;
}
}
if(flag)
{

s++;
for(k=1;k<=s;k++)
{
a[k]=i;
}
}
}
printf("%d\n",s);
for(k=1;k<=s;k++)
{
printf("%d ",a[k]);
}
}

//循环嵌套的有点混乱,flag在第一个循环中应该重新赋值为1
具体看下边的代码:
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,j,k,a[21],flag,s=0;

for(i=101;i<200;i++)
{
for(j=2;j<=sqrt(i);j++)
{
flag=1;
if(i%j==0)
{
flag=0;
break;
}
}
if(flag)
{
s++;
a[s]=i;
}
flag=1;
}
printf("%d\n",s);
for(k=1;k<=s;k++)
{
printf("%d ",a[k]);
}
return 0;
}

#include<stdio.h>
#include<math.h>
void main()
{
int n,i,j,k,a[21],flag,s=0;

for(i=101;i<200;i++, flag = 1)
{

for(j=2;j<=sqrt(i);j++)
{
if(i%j==0)
{
flag=0;
break;
}
}
if(flag)
a[s++] = i;
}