这困扰了我很多。这是检测素数的简单功能,但是尽管没有编译错误,但我的控制台上没有任何输出。有人可以检测出这段代码有什么问题吗?
#include<stdio.h>
int isprime(int);
int main()
{
int n;
scanf("%d", &n);
if (isprime(n))
printf("Yes");
else
printf("No");
return 0;
}
int isprime(int num)
{
int flag = 1;
for(int i = 2; i <= num/2; i++)
{
if(num % i == 0)
{
flag = 0;
break;
}
}
return flag;
}
答案 0 :(得分:2)
程序没有任何问题。由于缺少新行,因此输出的格式不正确,因此也许通过添加它们,您将能够看到一些内容,因为输出可能恰好在控制台提示符的开头。
int n;
printf("Input a number: ");
scanf("%d", &n);
if (isprime(n))
printf("Yes\n");
else
printf("No\n");
答案 1 :(得分:0)
对于初学者来说,功能isprime
无效。它为非质数1
返回1
。:)
该函数至少应声明为
int isprime( unsigned int num );
对于您的问题,直到未遇到换行符时,才会刷新输出缓冲区。
代写
if (isprime(n))
printf("Yes\n");
else
printf("No\n");
或
if (isprime(n))
puts("Yes");
else
puts("No");
答案 2 :(得分:0)
我敢打赌您看不到输出,但显示出来了。没有新行,并且命令提示符遵循NoC:\>
之类的答案而不是C:\>
。