小白求助,我拿c++模拟了一下部落冲突的得星情况但是后面两个条件得出的都是是第二个答案

#include <iostream>
using namespace std;

int main() 
{
    int a;
    bool dabeng;
    cout << "推了多少" << endl;
    cin >> a;
    cout << "大本营推了请按ture,否则按false" << endl;
    cin >> dabeng;
    if (a ==100||dabeng==1)
    {
        cout << "三星" << endl;
    }
    else if(a<=100||dabeng==1)
    {
        cout << "两星" << endl;
    }
    else if (a <= 100 || dabeng == 0)
    {
        cout << "一星" << endl;
    }
    else if(a<=50||dabeng==0)
    {
        cout << "黑三" << endl;
    }

    return 0;
}

你的输入有问题,输入dabeng的时候,不能输入true或者false,应该输入非0代表true,0代表false

你这判断条件重叠了,例如,当a=25时,既满足第二个的判断,又满足第三个的判断,还满足第四个判断,基于C语言代码顺序执行的原则,会优先执行前面的判断。