#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>

int getline(char s[], int lim){
	int i, c;
	for (i=0; i<lim && (c=getchar()) != EOF && c != '\n'; ++i) {
		s[i] = c;
	}
	s[i] = '\0';
	return (i);
}


int valose(char s[]){
int i=0,ok=1,h=0,j=0,k=0;

h=strlen(s);

if(s[i]!='+' && !isdigit(s[i])){ok=0;}

if(ok==1){
	for(j=1;j<h;j++){
		if(!isdigit(s[i])){k++;}
	}
	
if(k>0){
	i++;
	while(isdigit(s[i])){i++;}

	if(s[i]!='.' && s[i]!=','){ok=0;}
	i++;

	while(isdigit(s[i])){i++;}

	if(s[i]!='\0'){ok=0;}
	}
}
	
return ok;	
}

void main(void){
char s[128];
float n=0,sz=0,ter=0,ker=0,q=0;
float o[128];
char k[3]={'A','B','C','\0'};
int ok=1,i=0,j=0;

printf("\tHaromszog Terulet/Kerulet szamito program\n");
printf("Ha az egyik oldal 0, akkor a program kilep\n\n");

do{
q=0;	
do{
ok=1;
printf("Adja meg az %c oldal meretet\n",k[i]);
getline(s,128);

if(valose(s))
{
ok=1;
q=atof(s);
if(q==0.0 && q==0){ok=1; i=3; printf("0 hosszusagu nem lehetseges, a program kilep \n");}
else{
o[i]=q;
i++;}
}

else{
ok=0; 
q=atof(s);
if(q==0.0 && q==0){ok=1; i=3; printf("0 hosszusagu nem lehetseges, a program kilep \n");}
else{printf("Nem jo megadas\n");}
}

}while(ok!=1);

}while(i!=3);

if(q>0 || q>0.0){
for(j=0;j<4;j++){
ker=ker+o[j];	
}

printf("A haromszog kerulete: %0.2f\n",ker);

sz=ker/2;

ter=sqrt(sz*(sz-o[0])*(sz-o[1])*(sz-o[2]));

printf("A haromszog terulete: %0.2f\n",ter);
}
}
