#include
int isPrime(int n)
{ int i;
for(i=2;iif(n%i==0)
return 1;
if(i==n) return 0;
}
int main()
{ int n;
if(isPrime(n))
printf("%d is a prime",n);
else
printf("%d is not a prime",n);
return 0;
}
这个程序的bug在哪里啊?
这个程序有一个严重的错误,就是在调用 isPrime 函数之前并没有为变量 n 赋值。
在调用 isPrime 函数之前,应该先输入一个整数,然后将这个整数赋值给 n,然后再调用 isPrime 函数。
修改后的代码应该是这样的:
#include <stdio.h>
int isPrime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0)
return 1;
if(i==n) return 0;
}
int main()
{
int n;
printf("Enter an integer: ");
scanf("%d", &n); // 输入一个整数
if(isPrime(n))
printf("%d is a prime",n);
else
printf("%d is not a prime",n);
return 0;
}