c语言代码 不知道那里出问题了
#include <stdio.h>int main()
{
int x=2,y,z=1;
while (x <= 100)
{
for (y=1; y<x/2; y++)
{
if (x%y==0)
{
z=0;
}
}
if (z)
{
printf("%d是质数\n",x);
}
else
{
printf("%d不是质数\n",x);
}
x=x+1;
}
return 0;
}
求大佬相助 我运行了一下,没有问题啊 就是消息繁琐点,你可以把else的代码删掉,那样看起来就会简洁许多 gandixiwang 发表于 2022-3-10 20:04
我运行了一下,没有问题啊
就2和3显示是质数,但是后面稍微大一点的就显示不是质数了比如17,19,23之类的 #include <stdio.h>
int main()
{
int x=1,y,z=1;
while (x <= 100)
{
for (y=2; y<=x/2; y++)
{
if (x%y==0)
{
z=0;
}
}
if (z)
{
printf("%d是质数\n",x);
}
x=x+1;
z=1;
} 你运行我这个试试看,我这个可以,在对比一下你的就知道了 我那里忘写return 0;了
#include <stdio.h>
int main()
{
int x=2,y,z=1;
while (x <= 100)
{
z=1;//z每一次都要之于1,如果没有进去if(x%y==0)就会出错
for (y=2; y<=x/2; y++)//根据质数的特点,我们从2开始,只要除尽了就不是质数,使用break跳出循环
{//其次 范围要y<=x/2,例如像4这种情况,
if (x%y==0)
{
z=0;
break;
}
}
if (z)//z大于0的时候为真
{
printf("%d是质数\n",x);
}
else
{
printf("%d不是质数\n",x);
}
x=x+1;
}
return 0;
} gandixiwang 发表于 2022-3-10 20:04
我运行了一下,没有问题啊
没发现结果是错的嘛
{:10_266:} YSW9527 发表于 2022-3-10 20:34
没发现结果是错的嘛
{:10_291:} gandixiwang 发表于 2022-3-10 20:28
你运行我这个试试看,我这个可以,在对比一下你的就知道了
谢谢了,问题解决了 {:5_109:}
页:
[1]