题目问题:以每行8个的形式输出100-999内的质数。
出现的错误:会出现591这种非质数。不理解是哪里出错
代码:
#include
#include
int main()
{
int i,j,count;
count=0;
for(i=100;i<999;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)
{
break;
}
else
{
count++;
printf(" %d ",i);
if(count%8==0)
{
printf("\n");
}
break;
}
}
}
return 0;
}
问题截图:
你要 内循环完了 再 输出对应的数据。参考如下修改:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,count;
count=0;
for(i=100;i<999;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)
{
break;
}
}
if (j == i)
{
count++;
printf("%d ",i);
if(count%8==0)
{
printf("\n");
}
}
}
return 0;
}
修改如下,供参考:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, count;
count = 0;
for (i = 100; i < 999; i++)
{
for (j = 2; j < i; j++) //for(j = 2; j <= i; j++) 修改
{
if (i % j == 0)
{
break;
}
} // 修改
if (j >= i); //else 修改
{
count++;
printf(" %d ", i);
if (count % 8 == 0)
{
printf("\n");
}
//break; 修改
}
}
return 0;
}