#include <iostream> #include <cmath> using namespace std; void get_input(double
ID: 3641186 • Letter: #
Question
#include <iostream>
#include <cmath>
using namespace std;
void get_input(double side_a, double side_b, double side_c);
bool check_triangle(double side_a, double side_b, double side_c);
void area_perimeter(double side_a, double side_b, double side_c, double area, double perimeter);
void show_output (double area, double perimeter);
double semiperimeter(double side_a, double side_b, double side_c);
int main ()
{
char answer;
double side_a, side_b, side_c, area, perimeter;
double area_perimeter(side_a, side_b, side_c, area, perimeter); MY PROBLEM IS HERE WITH SIDE_A
IT SAYS EXPECTING A ')' WHERE THE COMMA AFTER A IS. WHY IS THAT?
show_output (area, perimeter);
do
{
get_input(side_a, side_b, side_c);
check_triangle(side_a, side_b, side_c);
}
while (answer == 'y' || answer == 'Y');
return 0;
}
void get_input(double side_a, double side_b, double side_c)
{
cout << "Input the length of side a of a triangle: ";
cin >> side_a;
while (side_a <= 0)
{
cout << "Enter a positive nonzero number for the length of side a";
cin >> side_a;
}
cout << "Input the length of side b of a triangle: ";
cin >> side_b;
while (side_b <= 0)
{
cout << "Enter a positive nonzero number for the length of side b";
cin >> side_b;
}
cout << "Input the length of side a of a triangle: ";
cin >> side_c;
while (side_c <= 0)
{
cout << "Enter a positive nonzero number for the length of side c";
cin >> side_c;
}
cout << endl;
}
bool check_triangle(double side_a, double side_b, double side_c)
{
if ((side_a + side_b > side_c)||(side_a+side_c > side_b)||(side_b + side_c > side_a))
return true;
else
return false;
cout << "Those side lengths cannot produce a triangle. ";
}
void area_perimeter(double side_a, double side_b, double side_c, double& perimeter, double& area)
{
double semiPer;
perimeter = side_a + side_b + side_c;
semiperimeter(side_a, side_b, side_c);
area = sqrt(semiPer * (semiPer - side_a) * (semiPer - side_b) * (semiPer- side_c));
}
double semiperimeter(double side_a, double side_b, double side_c)
{
double semiPer;
semiPer = (side_a + side_b + side_c)/2.0;
return semiPer;
}
void show_output (double area, double perimeter)
{
cout << "The area of the triangle is "<< area << " and the perimeter is "<< perimeter << endl;
}
Explanation / Answer
Hi, you are initializing area_perimeter method as it is a variable and that is wrong. double area_perimeter(side_a, side_b, side_c, area, perimeter); when you pass variables in a method parameters you must always declare them the correct way: void area_perimeter(double side_a, double side_b, double side_c,double area, double perimeter); When you run press continue 3 times so it will run, because you need to initialize your 3 sides (side_a, side_b, side_c). But I solved for you what you asked in the question. I hope this helped.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.