Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    5

    evitare il termine del programma

    ho sviluppato questo codice sorgente:
    codice:
    #include <stdio.h>
    main()
    {
    int alire, scel;
    float risult, beuro;
    
    scanf("%d", &scel);
    if (scel == 1){
    printf("inserisci le lire\n");
    scanf("%d", &alire);
    risult = (float) alire / 1936.27;
    printf("%d lire son %.3f euro", alire, risult);
    }
    if (scel == 2){
    printf("inserisci euro\n");
    scanf("%f", &beuro);
    risult = beuro * 1936.27;
    printf("%.2f euro sono %.2f lire", beuro, risult);
    }
    if (scel != 2 && scel != 1){
    printf("Spiacente scelta non consentita. dovevi scegliere 1 o 2\n");
    }
    return 0;
    }
    è un euro convertitore che se l'utente sceglie 1 converte lira a euro, se sceglie 2 converte euro a lire, se effettua una scelta diversa da 1 e 2 avverte che deve perfezionare la scelta.

    Come vedete però il programma termina dopo aver effettuato l'operazione di:
    conversione lira euro;
    oppure conversione euro lira;
    oppure scelta non consentita.

    Per evitare che il programma termini e permettere quindi a gli utenti di effettuare nuove oprerazioni come devo fare?
    Grazie
    ::HO VOGLIA DI IMPARARE E PER QUESTO STUDIO::
    ::::MA SE DI TANTO IN TANTO MI DATE UNA MANO::::
    :::::::::::::::::::::::VE NE SAREi GRATO::::::::::::::::::::::::::

  2. #2
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    fai un pò così e studialo e adattatelo:

    main()
    {
    int alire, scel;
    float risult, beuro;
    char letter[80];

    while ((letter[0]=getchar())!='*') {

    if (scel == 1){
    printf("inserisci le lire\n");
    scanf("%d", &alire);
    risult = (float) alire / 1936.27;
    printf("%d lire son %.3f euro\n", alire, risult);

    }
    if (scel == 2){
    printf("inserisci euro\n");
    scanf("%f", &beuro);
    risult = beuro * 1936.27;
    printf("%.2f euro sono %.2f lire\n", beuro, risult);
    }
    if (scel != 2 && scel != 1){

    printf("Spiacente scelta non consentita devi scegliere 1 o 2\n");

    }

    printf("SCEGLI 1 per convertire in euro, 2 per lire\n");
    scanf("%d", &scel);

    }
    printf("Good Bye\n");

    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    5
    ho fatto cosi e funziona ma secondo voi è corretto usare switch in questo caso o esiste un metodo alternativo?:
    codice:
    #include <stdio.h>
    main()
    {
    	int alire, scel;
    	float beuro, risult;
    
    	printf("euroconvertitire\nistruzioni:\nA converte lire\nB converte euro\nEOF (ctrl - z) termina il programma\n");
    
    	while ( (scel = getchar() ) != EOF){
    	     switch (scel) {
    
    	     case 'A': case 'a':
    	      printf("inserisci le lire\n");
    	      scanf("%d", &alire);
    	      risult = (float) alire / 1936.27;
    	      printf("%d lire son %.3f euro\nOra cosa vuoi fare?\n", alire, risult);
    	      break;
    
    
    	     case 'B': case 'b':
    	      printf("inserisci euro\n");
    	      scanf("%f", &beuro);
    	      risult = beuro * 1936.27;
    	      printf("%.2f euro sono %.2f lire\nOra cosa vuoi fare?\n", beuro, risult);
    	      break;
    
    
    	     case '\n': case ' ':
    	      break;
    
    
    	     default:
    	      printf("scelta non consentita\ninserire nuovamente la scelta ( A o B o EOF):\n");
    	      break;
    }
    }
    	printf("Grazie per aver utilizzato il programma\nBuona giornata");
    return 0;
    }

    ::HO VOGLIA DI IMPARARE E PER QUESTO STUDIO::
    ::::MA SE DI TANTO IN TANTO MI DATE UNA MANO::::
    :::::::::::::::::::::::VE NE SAREi GRATO::::::::::::::::::::::::::

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.