c ++如果该代码中的错误是什么?

时间:2017-12-23 05:55:15

标签: c++

我的英语不是很好 我有我写的源代码 "如果"和"否则如果"打印没问题 但是"否则"问题我无法打印

#include "stdafx.h"
#include <iostream>
using namespace std;

int main() {

    int x, y;
    char a,b;
    bool tm, mf;
    y = 13;
    b = 'A';

    cout <<"Asagidaki toplama islemini yap !"<< endl <<  "12" << endl << "+" << endl << "1" << endl;
    cin >> x;
    mf = (x == y);
    cout << "Turkiyenin baskenti'nin bas harfini" << endl << "buyuk harfle yaz" << endl;
    cin >> a;
    tm = (a == b);
    if (tm == mf == 1 )
        cout << "zekisin";
    else if (tm == 1)
        cout << "TM";
    else if (mf == 1)
        cout << "MF";
    else 
        cout << "Basaramadin";

    cin >> a;

}

3 个答案:

答案 0 :(得分:2)

通常在C ++中你不要将bool值与0/1进行比较,而是在检查true / false时检查它是否为!= 0例如ssh以检查tm和mf是否都是是真的写if (tm) ...

答案 1 :(得分:0)

tm == mf == 1不正确。

要检查tmmf是否等于1,请执行以下操作:

if(tm == 1 && mf == 1)代替。

答案 2 :(得分:0)

您的代码没有任何错误, 但我想你的意思是为什么这个输出出现在你面前。 检查“if(tm == mf == 1)”中的条件 这将只打印三个输出(zekisin或TM或MF) 并且它不会打印Basaramadin,因为在你的代码中你不会达到这个条件, 在“if(tm == mf == 1)”中,如果tm == mf将打印zekisin,如果mf == 1将打印MF,如果tm == 1将打印TM, 你错过了什么,因为我认为如果tm boolen为false,这意味着它的值为0,而且mf boolean为false,值为0 您在“if(tm == mf == 1)”中的条件也是正确的(true)因为tm == mf然后这将打印给你这个“zekisin” 你将无法达到最后的条件“Basaramadin” 我希望这能帮助你。