#include<stdio.h>
int main()
{
int x;
int i;
int iss=1;
int cont=0;
for(x=2;cont<=50;x++)
{
for(i=2;i<x;i++)
if(x%i==0)
{
iss=0;
break;
}
if(iss==1)
{
printf("%d",x);
cont++;
}
}
return 0;
}
iss要在外循环每测试一个x数之前都要重置为1
你题目的解答代码如下:
#include <stdio.h>
int main()
{
int x;
int i;
int iss = 1;
int cont = 0;
for (x = 2; cont <= 50; x++)
{
iss = 1; //iss要在外循环每测试一个x数之前都要重置为1
for (i = 2; i < x; i++)
if (x % i == 0)
{
iss = 0;
break;
}
if (iss == 1)
{
printf("%d ", x);
cont++;
}
}
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
iss=1;的初始化要放在第一个循环语句内部,修改如下:
#include<stdio.h>
int main()
{
int x;
int i;
int iss=1;
int cont=0;
for(x=2;x<=50;x++)
{
iss = 1; //加上该语句初始化
for(i=2;i<x;i++) //修改
if(x%i==0)
{
iss=0;
break;
}
if(iss==1)
{
printf("%d\t",x);
cont++;
}
}
return 0;
}
#include<stdio.h>
int main()
{
int x;
int i;
int iss=1;
int cont=0;
for(x=2;cont<=50;x++)
{
iss=1; // 每次重置
for(i=2;i<x;i++)
if(x%i==0)
{
iss=0;
break;
}
if(iss==1)
{
printf("%d\n",x);
cont++;
}
}
return 0;
}