Code:
/*
Len Bansavich III
Period 6
Triangle Program
This program computes the type of triangle (both by angle and side length) when given the length of three sides.
*/
#include <iostream.h>
#include <windows.h>
#include <iomanip.h>
#include <math.h>
void input(double &side1, double &side2, double &side3);
void sort(double &side1, double &side2, double &side3, double temp);
void angle(double &side1, double &side2, double &side3, char angleclass);
void type(double &side1, double &side2, double &side3, char typeclass);
void output(double &side1, double &side2, double &side3, char angleclass, char typeclass);
int main()
{
double side1; // side 1 variable
double side2; // side 2 variable
double side3; // side 3 variable
double temp; // temporary variable for sort
char angleclass[6]; // type of triangle array
char typeclass[11]; // type of triangle array
input(side1, side2, side3);
sort(side1, side2, side3, temp);
angle(side1, side2, side3, angleclass[6]);
type(side1, side2, side3, typeclass[11]);
output(side1, side2, side3, angleclass[6], typeclass[11]);
return 0;
}
// input function's definition
void input(double &side1, double &side2, double &side3)
{
do
{
cout << "Please enter the lengths of three sides of a triangle" << endl;
cout << "(All need to be positive, sum of shortest must be greater than longest)" << endl;
cout << "Please enter the length of the first side." << endl;
cin >> side1;
cout << "Please enter the length of the second side." << endl;
cin >> side2;
cout << "Please enter the length of the third side." << endl;
cin >> side3;
}
while(side1 > 0 && side2 > 0 && side3 > 0);
}
// sort function's definition
void sort(double &side1, double &side2, double &side3, double &temp)
{
if(side1 > side3 && side3 > side2)
{
temp = side2;
side2 = side3;
side3 = temp;
}
if(side2 > side1 && side1 > side3)
{
temp = side1;
side1 = side2;
side2 = temp;
}
if(side2 > side3 && side3 > side1)
{
temp = side1;
side1 = side2;
side2 = side3;
side3 = temp;
}
if(side3 > side1 && side1 > side2)
{
temp = side1;
side1 = side3;
side3 = side2;
side2 = temp;
}
if(side3 > side2 && side2 > side1)
{
temp = side1;
side1 = side3;
side3 = temp;
}
}
// angle function's definition
void angle(double &side1, double &side2, double &side3, char angleclass[])
{
if((side1 * side1) + (side2 * side2) > (side3 * side3))
{
angleclass[0] = 'A';
angleclass[1] = 'c';
angleclass[2] = 'u';
angleclass[3] = 't';
angleclass[4] = 'e';
angleclass[5] = '\0';
}
if((side3 * side3) = (side1 * side1) + (side2 * side2))
{
angleclass[0] = 'R';
angleclass[1] = 'i';
angleclass[2] = 'g';
angleclass[3] = 'h';
angleclass[4] = 't';
angleclass[5] = '\0';
}
if((side1 * side1) + (side2 * side2) < (side3 * side3))
{
angleclass[0] = 'O';
angleclass[1] = 'b';
angleclass[2] = 't';
angleclass[3] = 'u';
angleclass[4] = 's';
angleclass[5] = 'e';
angleclass[6] = '\0';
}
}
// type function's definition
void type(double &side1, double &side2, double &side3, char typeclass[])
{
if(side1 = side2 = side3)
{
typeclass[0] = 'E';
typeclass[1] = 'q';
typeclass[2] = 'u';
typeclass[3] = 'i';
typeclass[4] = 'l';
typeclass[5] = 'a';
typeclass[6] = 't';
typeclass[7] = 'e';
typeclass[8] = 'r';
typeclass[9] = 'a';
typeclass[10] = 'l';
typeclass[11] = '\0';
}
if(side1 = side2 != side3 || side1 = side3 != side2 || side2 = side3 != side1)
{
typeclass[0] = 'I';
typeclass[1] = 's';
typeclass[2] = 'o';
typeclass[3] = 's';
typeclass[4] = 'c';
typeclass[5] = 'e';
typeclass[6] = 'l';
typeclass[7] = 'e';
typeclass[8] = 's';
typeclass[9] = '\0';
}
if(side1 != side2 != side3 || side2 != side3 != side1 || side3 != side1 != side2)
{
typeclass[0] = 'S';
typeclass[1] = 'c';
typeclass[2] = 'a';
typeclass[3] = 'l';
typeclass[4] = 'e';
typeclass[5] = 'n';
typeclass[6] = 'e';
typeclass[7] = '\0';
}
}
// output function's definition
void output(double &side1, double &side2, double &side3, char angleclass[], char typeclass[])
{
if(side1 > (side2 + side3))
{
cout << "The sides entered are not that of a triangle";
}
else
{
cout << "Triangle Type = " << typeclass << endl;
cout << "Triangle Type 2 = " << angleclass << endl;
}
}