繁体   English   中英

没有编译错误,但在 C 中没有得到任何 output

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM