2014-01-18 58 views
-1

好的,所以我很新,没有经验,所以这个问题很可能是愚蠢的,但我试图寻找解决方案并失败,所以我想我为什么不试试。“被调用的对象'int'不是一个函数或函数指针”错误

我正在尝试编写一个程序,它需要一个三角形的边并输出区域,边界以及它是否是一个直角三角形。周边工作正常,但当我尝试定义S和地区它给我的错误消息“调用对象‘诠释’不是一个函数或函数指针”

所以这是我的代码:

#include <iostream> 
#include <cmath> 
using namespace std; 

//area = sqrt(s(s-a)(s-b)(s-c)) 

int main() 
{ 
int a; 
int b; 
int c; 
int perimeter; 
int area; 
int s; 


//ask for triangle sides 
cout << "Input triangle sides (smallest to largest) " << endl; 
cin >> a >> b >> c; 

perimeter = a + b + c; 

s =(a+b+c)/2; 

area = sqrt(s(s-a)(s-b)(s-c)) 


//This one says 'Expression is not assignable' I don't see why it wouldn't work... 

if ((c*c)-((a*a)+(b*b))= 0) 
    cout << "Right triangle" << endl; 




cout << "Side A: " << a << endl; 
cout << "Side B: " << b << endl; 
cout << "Side C: " << c << endl; 
cout << "The perimeter is " << perimeter << endl; 
cout << "The area is " << area << endl; 



return 0; 

}

任何帮助将不胜感激。谢谢!

+1

你知道'='vesus'=='之间的区别吗? –

回答

0

在C++中没有隐含乘法:使用sqrt(s*(s-a)*(s-b)*(s-c))

1
  1. 你需要写*明确:

    area = sqrt(s*(s-a)*(s-b)*(s-c));

您还forgoten的;底。

  1. 你可能需要==进行比较(+你可以删除多余的parenthases):

    if (c*c - a*a - b*b == 0)

0

不同于传统的数学符号,乘法是不是在C++隐。乘号,使用*操作

area = sqrt(s*(s-a)*(s-b)*(s-c)); 
0

不像数学,乘法总是需要一个“*”和平等的测试与“==,而不是‘=’完成的。

你应该读一个体面

相关问题