Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803

    [c] switch

    #include<stdio.h>

    int main ()
    {
    int car;
    while (car != 0) {
    printf("Inserisci una lettera, 0 per finire il ciclo: ");
    scanf("%c", car);
    switch (car){
    case 'a':
    printf("******\n * *\n******");
    break;

    case 'b':
    printf("\n\n*******\n* * *\n ** **\n");
    break;

    case 'c':
    printf("\n\n ****\n* *\n* *\n");
    break;

    case 'd':
    printf("\n\n******\n* *\n* *\n ****\n");
    break;
    } //switch
    } //while
    return 0;
    }

    dovrebbe stampare:
    *******
    * *
    *******

    quando digito a,

    *******
    * * *
    *** **

    quando digito b, ecc..



  2. #2
    e qual'è il poblema? non stampa? stampa male?
    cmq ti suggerirei di fare char car e non int car

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    12

    Re: [c] switch

    int car; dovrebbe essere char visto che lo switch lo fai attraverso caratteri.

    while (car!=0) dovresti mettere gli apici allo 0 senno' il programma termina subito (zero considerato come char e non come int).

    scanf("%c",car); dovrebbe essere scanf("%c",&car);

    sotto allo scanf aggiungi fflush ( stdin ); senno' al giro dopo ti legge l'invio che avevi dato prima

    poi ti consiglio di indentare un po' il codice, viene piu' leggibile

  4. #4
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803

    Re: Re: [c] switch

    Originariamente inviato da BSoft
    int car; dovrebbe essere char visto che lo switch lo fai attraverso caratteri.

    while (car!=0) dovresti mettere gli apici allo 0 senno' il programma termina subito (zero considerato come char e non come int).

    scanf("%c",car); dovrebbe essere scanf("%c",&car);

    sotto allo scanf aggiungi fflush ( stdin ); senno' al giro dopo ti legge l'invio che avevi dato prima

    poi ti consiglio di indentare un po' il codice, viene piu' leggibile

    1.la funzione fflush non l'ho mai sentita..e non vorrei complicarmi la vita + di quello k già è....

    2.indentare??

  5. #5
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    senza fflush funziona tutto tranne il caso default:

    default:
    printf"\nCarattere non valido\n");
    break;

  6. #6
    Ciao, prova in questo modo:

    codice:
    #include<stdio.h> 
    
    int main () 
    { 
       
       int car; 
       printf("Inserisci una lettera, 0 per finire il ciclo: \n");
       while (car != '0') { 
          switch (car = getchar()){ 
         
          case 'a': 
             printf("******\n * *\n******\n"); 
             break;
         
         case 'b': 
            printf("\n\n*******\n* * *\n ** **\n\n"); 
            break; 
    			
         case 'c': 
    	printf("\n\n ****\n* *\n* *\n\n"); 
            break; 
    			
         case 'd':
    	printf("\n\n******\n* *\n* *\n ****\n\n"); 
    	break;
    
         }
      }
       
       return 0; 
    }
    Spero di essere stato di aiuto!


  7. #7
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    Originariamente inviato da skyhunter
    Ciao, prova in questo modo:

    codice:
    #include<stdio.h> 
    
    int main () 
    { 
       
       int car; 
       printf("Inserisci una lettera, 0 per finire il ciclo: \n");
       while (car != '0') { 
          switch (car = getchar()){ 
         
          case 'a': 
             printf("******\n * *\n******\n"); 
             break;
         
         case 'b': 
            printf("\n\n*******\n* * *\n ** **\n\n"); 
            break; 
    			
         case 'c': 
    	printf("\n\n ****\n* *\n* *\n\n"); 
            break; 
    			
         case 'd':
    	printf("\n\n******\n* *\n* *\n ****\n\n"); 
    	break;
    
         }
      }
       
       return 0; 
    }
    Spero di essere stato di aiuto!


    il default!!
    --x tutte le altre lettere: "carattere nn valido"--

  8. #8
    E allora prova così:

    codice:
    #include<stdio.h> 
    
    int main () 
    { 
       
       int car; 
       printf("Inserisci una lettera, 0 per finire il ciclo: \n");
       while ((car = getchar()) != '0') { 
        switch (car){ 
         
        case 'a':
             printf("******\n * *\n******\n"); 
             break;
         
        case 'b':
            printf("\n\n*******\n* * *\n ** **\n\n"); 
            break; 
    			
        case 'c': 
    	printf("\n\n ****\n* *\n* *\n\n"); 
    	break; 
    			
        case 'd':
    	printf("\n\n******\n* *\n* *\n ****\n\n"); 
    	break;
    	
        case '\n': /* ignora i newline */
        case '\t': /* ignora le tabulazioni */
        case ' ': /* ignora gli spazi */
    	break;
    	
    	
        default: /* tutte le lettere non in elenco */
    	printf("carattere non valido!");
    	break;
        }
      }
       
       return 0; 
    }

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 © 2025 vBulletin Solutions, Inc. All rights reserved.