Lati di un Triangolo

di il
2 risposte

Lati di un Triangolo

Salve ,
sono alle prese con questo programma:
"/*Legge tre interi e stabilisce se possono essere le lunghezze dei lati di un triangolo.
In caso affermativo, trova la tipologia del triangolo.*/"
Non e' complesso infatti sono riuscita subito ad arrivare alla soluzione, ma ho un piccolo problema ovvero nel momento in cui inserisco i dati funziona correttamente nel dirmi se è un triangolo isoscele o scaleno ma non mi da la giusta risposta nel dirmi se è equilatero. Non capisco dove sta l'errore.
int main(){
int base, lato1, lato2;

 printf("Immetti il valore della base: ");
 scanf("%d", &base);

 printf("Immetti i valori dei lati:\n");
 scanf("%d%d", &lato1, &lato2);

system("cls");
printf("\t-->VERIVICO TRIANGOLO<--\t");

 if(base<lato1+lato2 && lato1<base+lato2 && lato2<base+lato1){
   if(lato1==lato2 || lato1==base || lato2==base){
    printf("\nI dati inseriti corrispondono ad un TRIANGOLO ISOSCELE\n\n");
   }
   else{
    if(lato1==lato2 && lato1==base && lato2==base){
     printf("\nI dati inseriti corrispondono ad un TRIANGOLO EQUILATERO\n\n");
    }
    else
     printf("\nI dati inseriti corrispondo ad un TRIANGOLO SCALENO\n\n");
   }
  }
 else{
  printf("\nNON E' UN TRIANGOLO\n\n");
 }

system("pause");
return 0;
}

2 Risposte

  • Re: Lati di un Triangolo

    Per come hai strutturato tu la logica la differenza la fa l'ordine di controllo del triangolo. Un triangolo equilatero avendo comunque due lati uguali può essere considerato dal tuo programma un triangolo isoscele e quindi si blocca in quel punto.

    Ti basta controllare prima che non sia equilatero, poi isoscele e infine scaleno.
  • Re: Lati di un Triangolo

    Ti ringrazio , ho invertito i due controlli e adesso funziona correttamente!
Devi accedere o registrarti per scrivere nel forum
2 risposte