没有编译错误,但没有在C中获得任何输出

时间:2019-09-26 16:41:33

标签: 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;
}

3 个答案:

答案 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:\>