ciao a tutti...il programma in se funziona, però non riesco a capire perchè mi ripete 2 volte questorintf("\n-Premi :\n.) c per il cubo,\n.) q per il parallelepipedo,\n.) p per la piramide: ");
....so che il programma non ha senso,cioè la terra ecc, era per esercitarmi.....e volevo sapere come risolvere il mio problema...per capire meglio eseguite il programma....io credo che c faccia un ciclo a vuoto ogni volta e così mi chiede 2 volte di inserire printf("\n-Premi :\n.) c per il cubo,\n.) q per il parallelepipedo,\n.) p per la piramide: ");.....ma perché??? grazie|!!
#include<stdio.h>
#include<stdlib.h>
main()
{
char f;
float terra,lato,area,lator,lator1,h1,latot,h2,h3,area1, avanzo;
int cont1,cont2,cont3;
printf("TU HAI DEI METRI DI TERRA CHE VUOI METTERE DENTRO DELLE SCATOLE..\nMA NON SAI QUANTE TE NE SERVONO....\n\n");
printf("Quanti metri di terra hai?? ");
scanf("%f",&terra);
printf("Hai a disposizione 3 scatole di varie dimensioni: \n");
area=0;
area1=0;
cont1=0;
cont2=0;
cont3=0;
do
{
printf("\n-Premi :\n.) c per il cubo,\n.) q per il parallelepipedo,\n.) p per la piramide: ");
scanf("%c",&f);
switch (f)
{
case 'c':
{
printf("Dammi il lato del cubo: ");
scanf("%f",&lato);
area1=lato*lato*lato;
cont1++;
break;
}
case 'q':
{
printf("Dammi il lato del rettangolo: ");
scanf("%f",&lator);
printf("Dammi l'altro lato del rettangolo: ");
scanf("%f",&lator1);
printf("Dammi l'altezza del parallelepipedo: ");
scanf("%f",&h1);
area1=(lator*lator1)*h1;
cont2++;
break;
}
case 'p':
{
printf("Dammi il lato del triangolo: ");
scanf("%f",&latot);
printf("Dammi l'altezza del triangolo: ");
scanf("%f",&h2);
printf("Dammi l'altezza della piramide: ");
scanf("%f",&h3);
area1=((latot*h2)/2)*(h3/2);
cont3++;
break;
}
default:
printf("Non hai questa scatola!\n");
}
area=area+area1;
area1=0;
}
while(area<terra);
printf("\nIn totale ti servono %d cubo/i, %d parallelepipedo/i e %d piramide/i!\n",cont1,cont2,cont3);
avanzo=area-terra;
printf("\nnell'ultima scatola hai ancora a disposizione %.2f metri di spazio!\n\n",avanzo);
system("pause");
}