724886350 发表于 2017-12-19 11:04:15

大神指教一下,为什么我的-Bool flag是错误的!

#include<stdio.h>
int main()
{
        int i,num;
        _Bool flag=1;
       
        printf("请输入一个整数:");
        scanf("%d",&num);
        for(i=2;i<num/2;i++)
        {
                if(num%i==0)
                {
                        flag=0;
                }
        }
        if(flag)
        {
                printf("%d是一个素数!\n",num);
        }
        else
        {
                printf("%d不是一个素数!\n",num);
        }
        return 0;
}   
5        3        D:\devc++\素数.cpp        '_Bool' was not declared in this scope
13        4        D:\devc++\素数.cpp        'flag' was not declared in this scope
16        5        D:\devc++\素数.cpp        'flag' was not declared in this scope

BngThea 发表于 2017-12-19 11:16:31

可能是你的dev版本太低,不支持c99标准

sp1ral 发表于 2017-12-19 11:30:20

加windows.h头文件可以使用bool类型值

sp1ral 发表于 2017-12-19 11:40:06

if(num%i==0)
                {
                        flag=0;
//在这里应该加break;
                }

风过无痕丶 发表于 2017-12-19 11:41:24

两种方案。

第一种加个头文件 stdbool.h

第二种改成c文件 可以不加头文件

新建word 发表于 2017-12-20 19:26:41

本帖最后由 新建word 于 2017-12-20 19:42 编辑

_Bool这是什么类型?


你用的是什么   编译器 怎么可以编译通过呢?

vs2010 编译通过

#include<Windows.h>
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
        int num=0;
        while (1)
        {printf("请输入一个整数:");
                scanf("%d",&num);
                if (num >2)
                        break;
                printf("\n必须大于2 \n");
        }
        BOOL t=0;
        for (int i = 2;i<num; ++i )
        {
                if (num % i ==0)
                {
                        t=1;
                        break;//写不写无所谓 ,无非程序多跑点路,但是要养成好的习惯;有正确的结果了 就要退出;
                }
        }
        if (!t)
                printf("%d 是 素数",num);
        else
                printf("%d 非 素数",num);
        system("pause");
        return 0;
}

页: [1]
查看完整版本: 大神指教一下,为什么我的-Bool flag是错误的!