求一百以内的素数 ,问题在哪里 谢谢
#include "stdio.h"
main(void)
{
int j,i,k,a[100];
for (i=1;i<101;i++)
a[i]=i;
for(j=2;j<11;j++)
for(i=j+1;i<101;i++)
{if(a[j]!=0&&a[i]!=0)
if(a[i]%a[j]==0)
a[i]=0;
}
if(a[i]!=0)
printf("%d",a[i]);
}
[解决办法]
定义的数组是100,最大到a[99],但使用时用到了a[100],越界了。
而且你打印结果也应该放到一个循环中吧?
#include "stdio.h"
int main(void)
{
int j,i,k,a[101];
for (i=1; i<101; i++)
{
a[i] = i;
}
for(j = 2; j < 11; j++)
{
for(i = j+1; i < 101; i++)
{
if(a[j] != 0 && a[i] != 0)
{
if(a[i] % a[j] == 0)
{
a[i] = 0;
}
}
}
}
for(i = 1; i < 101; i++)
{
if(a[i] != 0)
printf("%d\n", a[i]);
}
}