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);
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
char* angleclass; // type of triangle array
char* typeclass; // type of triangle array
input(side1, side2, side3);
sort(side1, side2, side3);
angle(side1, side2, side3, angleclass);
type(side1, side2, side3, typeclass);
output(side1, side2, side3, angleclass, typeclass);
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; // temporary sort variable
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)
{
double dside1 = side1 * side1;
double dside2 = side2 * side2;
double dside3 = side3 * side3;
if(dside1 + dside2 > dside3)
{
strcpy(angleclass,"Acute");
}
if(dside3 = dside1 + dside2)
{
strcpy(angleclass,"Right");
}
if(dside1 + dside2 < dside3)
{
strcpy(angleclass,"Obtuse");
}
}
// type function's definition
void type(double &side1, double &side2, double &side3, char* typeclass)
{
if(side1 == side2 && side2 == side3)
{
strcpy(typeclass,"Equilateral");
}
if(side1 == side2 != side3 || side1 == side3 != side2 || side2 == side3 != side1)
{
strcpy(typeclass,"Isosceles");
}
if(side1 != side2 != side3 || side2 != side3 != side1 || side3 != side1 != side2)
{
strcpy(typeclass,"Scalene");
}
}
// 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;
}
}
I have no errors, but 8 warnings.