找错产生十个随机数存到数组并把素数输出

2025-05-23 08:45:40
推荐回答(1个)
回答1:

出错的地方用/*错误:*/标出
#include
#include
#include
#include
#define N 10
void main()
{int j, x,a[N],flag=1,i=0,k;
srand(time(0));
while(i{x=rand();
if(x<10||x>=100)
continue;
j=0;
while(j<=i&&a[j]!=x)
j++;
if(j>i) a[i++]=x;
}
for(i=0;iprintf("%d\n",a[i]);
printf("\n");
for(i=0;i{
flag = 0; /*错误:每次循环前应该把flag标志置为1,否则如果前一个数不是素数,那么后面的flag的值将一直为0*/
k=sqrt((double)a[i]);
for(j=2;j<=k;j++)
{
if(a[i]%j==0)
flag=0;
}
if(flag==1)
printf("%d\n",a[i]);
}
}