C语言 我正在制作一个质数检查器:当我尝试运行它时,它停止工作


#include <stdio.h>
int main() {
int x, i, counter = 0;
printf("Input number!t");
scanf("%d", &x);
for (i = 0; i <= x; i++) {
if (x % i == 0) {
counter++;
}
}
if (counter <= 2) {
printf("%d is a prime number.", x);
} else {
printf("%d is not a prime number.", x);
}
return 0;
}

似乎循环部分是问题所在,但我不知道为什么。我对编程很陌生,所以如果这是一个愚蠢的错误,请耐心等待。

试试这段代码。

在给出输入后除以零时,它将进入无穷大。做 确定循环从 1 开始,当除法在循环内时

#include <stdio.h>
int main()
{
int x,i,counter=0;
printf("Input number!t");
scanf("%d",&x);

for(i=1;i<=x;i++)
{
if(x%i==0)
{
counter++;
}
}
if(counter<=2)
{
printf("%d is a prime number.",x);
}
else
{
printf("%d is not a prime number.",x);
}
return 0;
}

正如@Some程序员伙计所提到的,你不能做x%0,因为除以0- 这发生在第一次迭代中。

因此,将您的循环更改为从1开始,如下所示:

for(i=1;i<=x;i++)
{
if(x%i==0)
{
counter++;
}
}

相关内容

最新更新