我正在制作基于文本的简单操作/触发计算器。我收到错误:"表达式必须是可修改的左值"当我试图平方变量时。这是我当前的代码:(错误突出显示sqrt)
double a, b, result;
cout << "Please enter your two side lengths (ex:12 5)";
cin >> a, b;
sqrt(pow(a, 2) + pow(b, 2)) = result;
cout << result << endl;
对于任何格式错误道歉,首先在这里询问任何帮助表示赞赏。谢谢!
答案 0 :(得分:3)
首先,cin >> a, b
does not do what you think it's doing。你最好写cin >> a >> b
。
然后,将数据分配给变量,而不是变量分配给数据。 result = sqrt(...)
也是。$command = "myexecutable.exe my command line params"
Invoke-Expression $command -OutVariable output -ErrorVariable errors
Write-Host "STDOUT"
Write-Host $output
Write-Host "STDERR"
Write-Host $errors
。
答案 1 :(得分:2)
你已经转换了作业。您正在尝试为sqrt函数分配result的值;您希望将结果分配给sqrt输出的值:
double a, b, result;
cout << "Please enter your two side lengths (ex:12 5)";
cin >> a, b;
result = sqrt(pow(a, 2) + pow(b, 2));
cout << result << endl;
答案 2 :(得分:1)
将cin
语句修改为cin >> a >> b;
,这会一次读取多个值,因为cin
不存在逗号运算符。另外,将赋值右侧的结果变量的顺序切换到左侧。分配上=
的两个操作数是l值,代表左值,应该在左侧,而r值代表右值,应该在右侧。切换它们,就会出错。
double a, b, result;
cout << "Please enter your two side lengths (ex:12 5)";
cin >> a >> b; //<-- See '>>' here
//sqrt(pow(a, 2) + pow(b, 2)) = result; <-- switch these to...
result = sqrt(pow(a, 2) + pow(b, 2)); //<-- ...this
cout << result << endl;
答案 3 :(得分:1)
主要问题是您的代码的行号4
和5
。
cin >> a,b;
错了。您可以在此行cin >> a >> b;
在第5行,你正在以错误的顺序进行作业。你应该以{{1}}
的方式反转它result