"Called object 'int' is not a function or a function pointer"错误



好吧,所以我很新,没有经验,所以这个问题很可能很愚蠢,但我试图查找解决方案并失败了,所以我想我会在这里尝试为什么不。<<<<<<<<<<<<

我正在尝试编写一个程序,该程序将三角形的侧面占据,并输出区域,周长以及是否是正确的三角形。外围工作正常,但是当我尝试定义s和区域时,它给我的错误消息"称为对象'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;

}

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

  1. 您需要明确编写*

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

您还忘记了;

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

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

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

与传统的数学符号不同,乘积在C 中并不隐含。要乘以数字,请使用 *操作员

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

与数学不同,乘法始终需要一个"*",并且使用" ==,而不是" ="。

进行平等测试

您应该读一本不错的书。

相关内容

最新更新