小人物a 发表于 2015-1-17 23:38:52

请帮忙看看错误在哪,编译不过去

# include <stdio.h>

bool IsPrime(int val)
{
        int i;

        for (i=2; i<val; ++i)
        {
                if (val%i == 0)
                        break;
        }
        if (i == val)
                return true;
        else
                return false;
}

int main(void)
{
        int m;

        scanf("%d", &m);
        if ( IsPrime(m) )
                printf("Yes!\n");
        else
                printf("No!\n");

        return 0;
}

雪是梅之香 发表于 2015-1-17 23:46:12

百度了一下:
在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。这是原因
所以要导入头文件:#include <stdbool.h>
然后就可以了

小人物a 发表于 2015-1-17 23:46:24

小人物a 发表于 2015-1-17 23:55:35

我试了下还是编译不通过,不知道是不是编译器的问题

Victory_6226 发表于 2015-1-18 00:30:59

也是查了一下,c里面没有bool型,可以扩展名改为.c++就OK了
或者c里面定义bool

小人物a 发表于 2015-1-18 00:41:48

很感谢,明白了。
页: [1]
查看完整版本: 请帮忙看看错误在哪,编译不过去