C/C++

Найдите ошибку, скорее всего дело в том что я из одной функции в другую пытаюсь передать значение переменнгой.

#include
#include
using namespace std;

int sum( int num1, int num2, int num3){
int p;
p= (num1+num2+num3)/2;

return p;
}
int rootexpression(int k, int g, int h, int j){
double x;

x= sqrt(k(k-g)(k-h)(k-j));
return x;
}

int main()

{ int a, b, c;
int s=0;
int m=0;

cout<<"Введите первую сторону треугольника а = ";
cin>>a;
cout<<"Введите вторую сторону треугольника b = ";
cin>>b;
cout<<"Введите третью сторону треугольника с = ";
cin>>c;
s=sum(a, b, c);

m=rootexpression(s, a, b, c);
cout<<m<<endl;

return 0;
}
#include <iostream>
#include <cmath>
using namespace std;
double per(double a, double b, double c) {
return a + b + c;
}
double fn(double a, double b, double c) {
double p = per(a, b, c) / 2;
return p * (p - a) * (p - b) * (p - c);
}
bool ex(double a, double b, double c) {
return fn(a, b, c) > 0;
}
double area(double a, double b, double c) {
return sqrt(fn(a, b, c));
}
double real(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
double a = real("Введите сторону a: ");
double b = real("Введите сторону b: ");
double c = real("Введите сторону c: ");
if (ex(a, b, c)) {
double ar = area(a, b, c);
cout << "Площадь треугольника: " << ar << '\n';
} else {
puts("Треугольник не существует!");
}
}
ЕА
Еркебулан Айдарбеков
65 902
Лучший ответ
Ошибок тут много. Исправленная твоя программа выглядела бы так:
#include "iostream"
#include "cmath"
using namespace std;
float sum(float n1, float n2, float n3){return (n1+n2+n3)/2;}
float rexpr(float k, float g, float h, float j){return sqrt(k*(k-g)*(k-h)*(k-j));}
int main(){float a,b,c; cout<<"a b c: "; cin>>a>>b>>c; cout<<rexpr(sum(a,b,c),a,b,c)<<endl;}
Но две функции тут ни к чему, и, как у Николая Веселухи, стоило бы проверять, существует ли треугольник вообще.
alt+shift+del,дальше выберите "Сканирование"
Андрей Бауэр
Андрей Бауэр
2 877
Андрей Бауэр То есть ctrl+alt+del