“被调用的对象'int'不是函数或函数指针”错误

时间:2014-01-18 20:44:16

标签: c++ macos xcode5

好的,所以我很新,没有经验,所以这个问题很可能是愚蠢的,但我试图找到一个解决方案而失败,所以我想我会试试为什么不这样做。

我正在尝试编写一个程序,它取三角形的边并输出区域,周长,以及它是否是一个直角三角形。外围工作正常,但是当我尝试定义s和区域时,它给出了错误消息“Called object'int'不是函数或函数指针”

所以这是我的代码:

#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;

}

非常感谢任何帮助。谢谢!

4 个答案:

答案 0 :(得分:1)

  1. 您需要明确写出*

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

  2. 您最后也忘记了;

    1. 您可能需要==进行比较(+您可以删除额外的大括号):

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

与传统的数学符号不同,乘法在C ++中并不是隐含的。要乘以数字,请使用*运算符

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

答案 3 :(得分:0)

与数学不同,乘法总是需要“*”,并且使用“==,not”=“完成相等测试。

你应该读一本体面的书。