Could you please help why my program goes through do while loop just once, although the condition is true.

//Program is getting numbers from user and realize whether they are correct numbers for triangle side or not and if tey find out the area//

#include<stdio.h>

#include<math.h>

double TraingleArea();

int main(void)

{

int Firstside,Secondside,Thirdside;

char Answer;

do

{

printf("Enter your Triangle's side \n");

scanf("%d %d %d", &Firstside, &Secondside, &Thirdside);

if(Firstside<=0 || Secondside<=0 || Thirdside<=0)

printf("Sides of traingle are positive,please enter three positive integer numbers.");

else

{

if(Firstside+Secondside<=Thirdside || Secondside+Thirdside<=Firstside ||Firstside+Thirdside<=Secondside)

printf("They are not valid numbers for sides of traingle.");

else

{

if(Firstside==Secondside && Secondside==Thirdside)

printf("The tringle is Equilateral\t Its area is equal to %f \n",TraingleArea(Firstside,Secondside,Thirdside) );

else if(Firstside==Secondside || Firstside==Thirdside || Secondside==Thirdside)

printf("The triangle is Isosceles\t Its area is equal to %f \n",TraingleArea(Firstside,Secondside,Thirdside) );

else

printf("The triangle is Scalene\t Its area is equal to %f \n",TraingleArea(Firstside,Secondside,Thirdside) );

}

}

printf("Would you like to continue? Y/N\n");

scanf("%c",&Answer);

}while(Answer=='Y');

}

double TraingleArea(unsigned Firstside,unsigned Secondside, unsigned Thirdside)

{

double halfPerimeter=(double)(Firstside+Secondside+Thirds ide)/2;

double Area;

Area=sqrt(halfPerimeter*(halfPerimeter-Firstside)*(halfPerimeter-Secondside)*(halfPerimeter-Thirdside));

return Area;

}