C 语言标准(C89) 没有定义布尔类型,如果你使用 true 和 false,会出现以下错误:
infinite.c:5:12: error: use of undeclared identifier 'true' while (true) { 1 error generated. make: *** [infinite] Error 1
我们可以借助 C 语言的宏定义来哦设置:
//宏定义布尔类型
#define BOOL int
#define TRUE 1
#define FALSE 0 //定义一个布尔变量
BOOL flag = FALSE;
#define BOOL int
#define TRUE 1
#define FALSE 0 //定义一个布尔变量
BOOL flag = FALSE;
也可以通过枚举类来定义:
typedef enum
{
true=1, false=0
}bool;
{
true=1, false=0
}bool;
实例
#include stdio.h>
//计算n!,n的值在main中定义
int main(void)
{
int n = 10; //计算叠乘数
int sum = 1; //用来存放叠乘的结果
typedef enum
{
true=1, false=0
}bool;
bool flag = false; //叠乘标记
while( !flag )
{
sum = sum * (num—);
//当num=1时结束循环
if( num == 1)
{
flag = true;
}
}
printf (“%d的叠乘值为 %d n“, n, sum);
return 0;
}
int main(void)
{
int n = 10; //计算叠乘数
int sum = 1; //用来存放叠乘的结果
typedef enum
{
true=1, false=0
}bool;
bool flag = false; //叠乘标记
int num = n; //循环次数
while( !flag )
{
sum = sum * (num—);
//当num=1时结束循环
if( num == 1)
{
flag = true;
}
}
printf (“%d的叠乘值为 %d n“, n, sum);
return 0;
}
输出结果为:
10的叠乘值为 3628800
C99 还提供了一个头文件
实例
//导入 stdbool.h 来使用布尔类型
#include stdbool.h>
#include stdio.h> //计算n!,n的值在main中定义
int main(void)
{
int n = 10; //计算叠乘数
int sum = 1; //用来存放叠乘的结果
bool flag = false; //叠乘标记
while( !flag )
{
sum = sum * (num—);
//当num=1时结束循环
if( num == 1)
{
flag = true;
}
}
printf (“%d的叠乘值为 %d n“, n, sum);
return 0;
}
#include stdbool.h>
#include stdio.h> //计算n!,n的值在main中定义
int main(void)
{
int n = 10; //计算叠乘数
int sum = 1; //用来存放叠乘的结果
bool flag = false; //叠乘标记
int num = n; //循环次数
while( !flag )
{
sum = sum * (num—);
//当num=1时结束循环
if( num == 1)
{
flag = true;
}
}
printf (“%d的叠乘值为 %d n“, n, sum);
return 0;
}
输出结果为:
10的叠乘值为 3628800
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)