#include <stdio.h>
#include <conio.h>
void main() {
int a, n, x;
clrscr();
printf("enter a number");
scanf("%d", &a);
n > 1;
a != n && n < a;
if (a / n == x)
printf("a is not a prime no");
else
printf("a is a prime no");
}
如果我运行这个并输入一个合数,它仍然显示为质数。
最佳答案
您的if
由于n
,陈述永远不会成立。和x
没有初始化。因此你只能得到你的 else 作为返回。而且你的表情n>1;
和a != n && n < a;
返回一个没有被压缩的 bool 值。在这种情况下,您需要使用 for
循环。
这里是a link关于for循环
int main()
{
int a,n,x = 0;
printf("enter a number: ");
scanf("%d",&a);
for(n=2; n<=a/2; ++n)
{
if(a%n==0)
{
x=1;
break;
}
}
if (x==0)
printf("",n);
else
printf("a is not a prime no");
return 0;
}
关于c - 这段代码有什么问题? (检查给定的数字是否是素数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38941080/