如果始终执行语句

1 c++ if-statement assignment-operator comparison-operators

救命

#include <iostream>
#include <math.h>
using namespace std;
const float pi = 3.14;
void Odabir(int);
int main(){
    int choose;
    cout << "Odaberite 1 2 ili 3" << endl;
    cin >> choose;
    Odabir(choose);
    return 0;
}
void Odabir(int choose){
    if (choose = 1){
        float b, vb;
        cout << "Unesite duljinu stranice b: " << endl;
        cin >> b;
        cout << "Unesite duljinu visine na stranicu b vb: " << endl;
        cin >> vb;
        cout << "Povrsina raznostranicnog trokuta je: " << ((b*vb) / 2) << endl;
    }
    if (choose = 2){
        float r;
        cout << "Unesite duljinu polumjera: " << endl;
        cin >> r;
        cout << "Povrsina kruga je: " << pow(r, 2)*pi << endl;
    }

}
Run Code Online (Sandbox Code Playgroud)

我已经尝试解决了好几个小时,但无法解决问题,当我设置select value时,所有三个if子句都将被执行并打印出来。

Vla*_*cow 6

您正在函数的if语句中使用赋值运算符( = )而不是比较运算符( == )

例如

if (choose = 1){
          ^^^ 
Run Code Online (Sandbox Code Playgroud)

改写

if (choose == 1){
          ^^^^ 
Run Code Online (Sandbox Code Playgroud)