I am having some trouble with this program, and none of my friends are able to help me. My teacher is out, so we have been stuck with a substitute.

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;
	}
}