代码块布尔错误

时间:2017-09-13 08:29:04

标签: c++

我想做布尔方程式,如5< 7将是真的,7< 5将是假的。

当我执行的代码询问A的值时,我输入一个值并输入但是他不要求b的值...并且总和出现一个随机数...

现在我再次启动它后,我在一个值中键入1然后它要求b的值,我输入2但仍然显示答案显示为A-B

int main() {   
    bool a;
    bool b;

    cout << "enter value for a" << endl;
    cin>>a;
    cout << "enter value for a" << endl;
    cin >> b;
    bool e = a < b;
    cout << "sum is" << e;
    return 0;
    getch();
}

2 个答案:

答案 0 :(得分:1)

你可能想要这个:

#include  <iostream>

using namespace std;

int main() {
  int a;   // int instead of bool
  int b;   // int instead of bool

  cout << "enter value for a " << endl;
  cin >> a;
  cout << "enter value for b " << endl;
  cin >> b;

  bool e = a < b;
  cout << "a < b is " << e << endl;  // prints 1 for true and 0 for false
  return 0;
  // getch();   // useless because it will never be executed after return 0;
}

查看评论以获得解释。

答案 1 :(得分:0)

bool只接受两个条件,0表示假或非零,它被计算为1(真)。要添加整数,您应使用关键字int,对于十进制数,请使用doublefloat

在您的情况下,您必须将ab声明为整数类型而不是bool。您的布尔变量e很好,它接收变量a是否小于变量b的条件。您的上一个std::cout不应该要求他们汇总,因为e不是用来总结它们,而是从a < b获得条件。

#include  <iostream>

int main() {
  int a;
  int b;

  std::cout << "enter value for a " << std::endl;
  std::cin >> a;
  std::cout << "enter value for b " << std::endl;
  std::cin >> b;

  bool e = a < b;
  std::cout << "a < b is: " << e << std::endl;
  return 0;
}