[英]No compilation errors but not getting any output in C
这一直困扰着我很多。 这是一个简单的 function 来检测素数,但我没有在我的控制台上得到任何 output,尽管没有编译错误。 有人可以检测一下这段代码有什么问题吗?
#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;
}
程序没有问题。 由于缺少新行,output 的格式不正确,因此也许通过添加它们,您可以看到一些内容,因为 output 可能就在控制台提示符的开头。
int n;
printf("Input a number: ");
scanf("%d", &n);
if (isprime(n))
printf("Yes\n");
else
printf("No\n");
对于初学者来说,function isprime
是无效的。 它为非质数1
1
:)
并且 function 应该至少声明为
int isprime( unsigned int num );
至于您的问题,则在未遇到换行符之前不会刷新 output 缓冲区。
改写
if (isprime(n))
printf("Yes\n");
else
printf("No\n");
或者
if (isprime(n))
puts("Yes");
else
puts("No");
我敢打赌你没有看到 output 但它显示出来了。 没有新行,命令提示符遵循NoC:\>
之类的答案,而不是C:\>
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.