表达式必须是L值

问题描述:

我正在尝试制作一个可以识别直角三角形的公式。我遇到了“a”和=号的问题。表达式必须是L值

错误1:'=';左操作数必须是l值。
错误2:“a”。表达式必须是一个可修改的左值。

任何帮助?

#include "stdafx.h" 
#include <iostream> 
#include <cstdio> 
#include <cmath> 

using namespace std; 


int main() 
{ 
    int a; 
    int b; 
    int c; 
    cout << "Input value for A." << endl; 
    cin >> a; 
    cout << "Input value for B. " << endl; 
    cin >> b; 
    cout << "Input value for C. " << endl; 
    cin >> c; 

    a^2 + b^2 = c^2; 
    return 0; 
} 
+2

'一^ 2 + B^2'没有可分配的表情,什么是如此难以了解关于这个事实? –

+0

你希望通过写“a^2 + b^2 = c^2”来完成什么?这显然是错误的,但没有解释你期望在这里完成什么,没有答案是可能的。此外,您是否知道'^'是C++中的独占运算符,而不是指数? –

+0

如果您正在测试相等使用== –

^运算符用于在C++中获取按位XOR。 你应该做它在以下方式:

,而不是a^2 + b^2 = c^2声明,写这样一个块:

if(pow(c, 2) == pow(a, 2) + pow(b, 2)) 
     std :: cout << "true"; 
    else 
     std :: cout << "false";