【题目链接】
ybt 1022:整型与布尔型的转换
OpenJudge NOI 1.2 09:整型与布尔型的转换
【题目考点】
1. bool类型(布尔类型)
- bool类型常量:true(真),false(假)
true实质是数字1,false实质是数字0 - bool类型变量声明:
bool b;
bool类型变量的值只能是true或false
2. 整型量转为布尔类型量
- 若该整型量的值不为0,转化成的布尔型量值为true
- 若该整型量的值为0,转化成的布尔型量的值为false
4. 布尔型量转为整型量
- true 转为 1
- false 转为 0
5. 布尔型量的输出
- cout输出:输出true会显示1,输出false会显示0
- printf输出:用%d输出,true输出为1,false输出为0
【解题思路】
题目问:将一个整型变量的值赋给一个布尔型变量,再将这个布尔型变量的值赋给一个整型变量,得到的值是多少?
答:若该整型量非0,最后得到的值为1。若该整型量为0,最后得到的值为0。
【题解代码】
解法1:使用cin,cout输入输出
根据题目描述写代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
bool a;
int b;
cin>>b;
a = b;
b = a;
cout<<b;
return 0;
}
解法2:使用scanf,printf输入输出
根据题目描述写代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
bool a;
int b;
scanf("%d", &b);
a = b;
b = a;
printf("%d", b);
return 0;
}
解法3:根据布尔型和整型的转化规则,总结规律,用代码描述规律
具体规律见【解题思路】
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a;
cin>>a;
cout<<(a != 0);
return 0;
}