PDA

View Full Version : aiuto su programmini semplici semplici


emanuele.g
21-11-2009, 16:03
Ciao a tutti, stavo facendo qualche esercizio che ci aveva dato il prof e ho incontrato subito i primi problemi..premetto che sono ancora all'inizio quindi niente di complicato :D
Il primo programma deve prendere in ingresso 3 numeri e dire se possono formare un triangolo, se la risposta è vera dirmi se è isoscele,equilatero o scaleno..insomma, una serie di if; peccato che non riesca a distinguermi tra triangolo equilatero e isoscele, infatti se immetto 4 4 4 mi dice che il triangolo è isoscele (ok è vero, ma io vorrei che mi dicesse che è equilatero!)

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

int main(){

int x,y,z;

printf("inserire primo lato");
scanf("%d",&x);
printf("inserire secondo lato");
scanf("%d",&y);
printf("inserire terzo lato");
scanf("%d",&z);

if((x>y+z) || (y>z+x) || (z>x+y))

{ printf("i dati immessi non rappresentano un triangolo");}
else{
if(x==y==z)

{printf("il triangolo è equilatero");
}
else {
if(((x==y) || (x==z) || (y==z)))
{ printf("il triangolo è isoscele");}
else{printf("il triangolo è scaleno");
}
}

}









system("PAUSE");
}




cosa sbaglio? Eventualmente sarebbe possibile farlo con uno switch? credo di no, ma chiedo lo stesso :D


EDIT: mi sono ricordato adesso di non aver sbagliato il titolo...dovevo specificare che si trattava di C

Nativo
21-11-2009, 17:08
if ( x == y && y == z )

almeno credo...

Nativo
21-11-2009, 17:13
è da moltissimo che non uso C... ma prova cosi:

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

int main() {

int x,y,z;

printf("inserire primo lato");
scanf("%d",&x);
printf("inserire secondo lato");
scanf("%d",&y);
printf("inserire terzo lato");
scanf("%d",&z);

if( x==y && y==z )
printf("il triangolo è equilatero");
elseif( x==y || x==z || y==z )
printf("il triangolo è isoscele");
else printf("il triangolo è scaleno");

return 0; //forse 1? non ricordo cosa chiede il SO...
}