Dove inserire ciclo While

di il
10 risposte

Dove inserire ciclo While

Salve,
Vorrei sapere dove posso inserire un ciclo While in modo da poter ripetere la possibilità di selezionare le prime 3 opzioni anche dopo l'utilizzo, finchè non si seleziona la 4a (per uscire dal programma). Spero di esser stato chiaro.

#include<stdio.h>
#include<unistd.h>
int main()
{
	int selezMenu;
	float deltaS, deltaT, vMedia;
	printf("\n");
	printf("/----------\\\n");
	printf("|----- VELO ----------\\\n");
	printf("\\---------- CALC -----|\n");
	printf("          \\-----------/\n");
	printf("\n");
	printf("\n");
	printf("      Premi invio      \n");
	getchar();
	printf("\n");
	printf("-----------------------\n");
	printf("| [1] Velocità media  |\n");
	printf("| [2] Spazio percorso |\n");
	printf("| [3] Tempo impiegato |\n");
	printf("| [4] Esci            |\n");
	printf("-----------------------\n");
	printf(": ");
	scanf("%d", &selezMenu);
	if (selezMenu == 1){
		printf("\n");
		printf("Inserisci lo spazio percorso in Km:  ");
		scanf("%f", &deltaS);
		printf("Inserisci il tempo impiegato in ore:  ");
		scanf("%f", &deltaT);
		printf("La velocità media è di %0.2f Km/h\n", deltaS/deltaT);
	} else if (selezMenu == 2){
		printf("\n");
		printf("Inserisci la velocità media in Km/h:  ");
		scanf("%f", &vMedia);
		printf("Inserisci il tempo impiegato in ore:  ");
		scanf("%f", &deltaT);
		printf("Lo spazio percorso è di %0.2f Km\n", vMedia*deltaT);
	} else if (selezMenu == 3){
		printf("\n");
		printf("Inserisci lo spazio percorso in Km:  ");
		scanf("%f", &deltaS);
		printf("Inserisci la velocità media in Km/h:  ");
		scanf("%f", &vMedia);
		printf("Il tempo impiegato è di %0.2f ore\n", deltaS/vMedia);
	} else if (selezMenu == 4){
		printf("\n");
		printf("Grazie per aver utilizzato VeloCalc by Phreaker!\n");
	}
return 0;
}
Ringrazio tutti anticipatamente,
Phreaker

10 Risposte

  • Re: Dove inserire ciclo While

    Beh ... mi sembra ovvio che il ciclo deve iniziare prima della prima printf di presentazione del menu e terminare prima del return.
  • Re: Dove inserire ciclo While

    Grazie della risposta tempestiva, un ultima domanda, cosa devo inserire nel "campo" dell'espressione? Esempio:
    while(espressione)
      {
            ...
            ...
      }
    
    Phreaker
  • Re: Dove inserire ciclo While

    Pensaci un po' e fao qualche tentativo altrimenti come impari?
  • Re: Dove inserire ciclo While

    Adesso ho aggiunto " int c = 1; " e " while(c > 0) " ma nonostante ciò, se seleziono l'opzione 4 per uscire, torna al menù di selezione.
    
    #include<stdio.h>
    #include<unistd.h>
    int main()
    {
    	int selezMenu;
    	float deltaS, deltaT, vMedia;
    	int c = 1;
    	while(c > 0)
    	{
    		printf("\n");
    		printf("/----------\\\n");
    		printf("|----- VELO ----------\\\n");
    		printf("\\---------- CALC -----|\n");
    		printf("          \\-----------/\n");
    		printf("\n");
    		printf("\n");
    		printf("      Premi invio      \n");
    		getchar();\
    		printf("\n");
    		printf("-----------------------\n");
    		printf("| [1] Velocità media  |\n");
    		printf("| [2] Spazio percorso |\n");
    		printf("| [3] Tempo impiegato |\n");
    		printf("| [4] Esci            |\n");
    		printf("-----------------------\n");
    		printf(": ");
    		scanf("%d", &selezMenu);
    		if (selezMenu == 1){
    			printf("\n");
    			printf("Inserisci lo spazio percorso in Km:  ");
    			scanf("%f", &deltaS);
    			printf("Inserisci il tempo impiegato in ore:  ");
    			scanf("%f", &deltaT);
    			printf("La velocità media è di %0.2f Km/h\n", deltaS/deltaT);
    		} else if (selezMenu == 2){
    			printf("\n");
    			printf("Inserisci la velocità media in Km/h:  ");
    			scanf("%f", &vMedia);
    			printf("Inserisci il tempo impiegato in ore:  ");
    			scanf("%f", &deltaT);
    			printf("Lo spazio percorso è di %0.2f Km\n", vMedia*deltaT);
    		} else if (selezMenu == 3){
    			printf("\n");
    			printf("Inserisci lo spazio percorso in Km:  ");
    			scanf("%f", &deltaS);
    			printf("Inserisci la velocità media in Km/h:  ");
    			scanf("%f", &vMedia);
    			printf("Il tempo impiegato è di %0.2f ore\n", deltaS/vMedia);
    		} else if (selezMenu == 4){
    			printf("\n");
    			printf("Grazie per aver utilizzato VeloCalc by Phreaker!\n");
    		}
    	}
    return 0;
    }
    
    Phreaker
  • Re: Dove inserire ciclo While

    Ok. Sono riuscito a farlo funzionare, ho dovuto aggiungere un break;
    Grazie mille per l'aiuto, oregon.
    Phreaker
  • Re: Dove inserire ciclo While

    La variabile che hai introdotto non cambia mai, come fa a terminare il ciclo? Anche senza break...
  • Re: Dove inserire ciclo While

    Ti pasto il codice
    
    #include<stdio.h>
    #include<unistd.h>
    int main()
    {
    	int selezMenu, c = 1;
    	float deltaS, deltaT, vMedia;
    	printf("\n");
    	printf("/----------\\\n");
    	printf("|----- VELO ----------\\\n");
    	printf("\\---------- CALC -----|\n");
    	printf("          \\-----------/\n");
    	printf("\n");
    	printf("\n");
    	printf("      Premi invio      \n");
    	getchar();
    	while(c>0)
    	{
    		printf("\n");
    		printf("-----------------------\n");
    		printf("| [1] Velocità media  |\n");
    		printf("| [2] Spazio percorso |\n");
    		printf("| [3] Tempo impiegato |\n");
    		printf("| [4] Esci            |\n");
    		printf("-----------------------\n");
    		printf(": ");
    		scanf("%d", &selezMenu);
    		if (selezMenu == 1){
    			printf("\n");
    			printf("Inserisci lo spazio percorso in Km:  ");
    			scanf("%f", &deltaS);
    			printf("Inserisci il tempo impiegato in ore:  ");
    			scanf("%f", &deltaT);
    			printf("La velocità media è di %0.2f Km/h\n", deltaS/deltaT);
    		} else if (selezMenu == 2){
    			printf("\n");
    			printf("Inserisci la velocità media in Km/h:  ");
    			scanf("%f", &vMedia);
    			printf("Inserisci il tempo impiegato in ore:  ");
    			scanf("%f", &deltaT);
    			printf("Lo spazio percorso è di %0.2f Km\n", vMedia*deltaT);
    		} else if (selezMenu == 3){
    			printf("\n");
    			printf("Inserisci lo spazio percorso in Km:  ");
    			scanf("%f", &deltaS);
    			printf("Inserisci la velocità media in Km/h:  ");
    			scanf("%f", &vMedia);
    			printf("Il tempo impiegato è di %0.2f ore\n", deltaS/vMedia);
    		} else if (selezMenu == 4){
    			printf("\n");
    			printf("Grazie per aver utilizzato VeloCalc by Phreaker!\n");
    			break;
    	}	}
    return 0;
    }
    
    Phreaker
  • Re: Dove inserire ciclo While

    Ma il tuo "Anche senza break", era una domanda della serie "come fai a farlo senza break?" oppure mi stavi chiedendo come avevo fatto?
  • Re: Dove inserire ciclo While

    La domanda e' subdola .
    Mettila cosi':

    lo potresti fare SENZA break?

    in particolare

    COME FUNZIONA il while?
    e sopprattutto, PERCHE' il while FUNZIONA?

    Ragiona bene, non rispondere a casaccio
    Non e' difficile. Bisogna pero' studiare un po'.
  • Re: Dove inserire ciclo While

    Si, hai ragione. Ci penso per bene e poi aggiorno.
    Phreaker
Devi accedere o registrarti per scrivere nel forum
10 risposte