View Single Post
Old 18-08-2010, 16:34   #4
retnI W
Senior Member
 
Iscritto dal: Mar 2005
Messaggi: 2090
Effettivamente modificando il tipo del campo dipendente.categoria da char a int e modificando la parte esecutiva a dovere, tutto funziona.

Codice:
#include <stdio.h>
#define LunghezzaNome 20
void main ()
{
     int comando;
     typedef struct {char      nome[LunghezzaNome];
                     int       categoria;
                     int       retribuzione;
                     }dipendenti;    
     dipendenti dipendente;
     printf ("inserire 0 per uscire, 1 per definire il nome, 2 per definire la categoria, 3 per definire la retribuzione\n");
     scanf ("%d", &comando);     
     switch (comando)
     {
     case 0: printf ("arrivederci!!");
             break;
     case 1: scanf ("%s", &dipendente.nome);
             break;   
     case 2: printf ("inserire 1 = autista, 2 = controllore\n");
             scanf ("%d", &dipendente.categoria);             
             break;               
     case 3: scanf ("%d", &dipendente.retribuzione);
             break;      
     }       
     printf ("inserire 0 per uscire, 1 per visualizzare il nome, 2 per visualizzare la categoria, 3 per visualizzare la retribuzione\n");
     scanf ("%d", &comando);
     switch (comando)
     {
     case 0: printf ("arrivederci!!");
             break;       
     case 1: printf ("%s\n", dipendente.nome);
             break;   
     case 2: if (dipendente.categoria == 1)
             printf ("autista\n");
             else if (dipendente.categoria == 2)
                  printf ("controllore\n");
             break;
     case 3: printf ("%d\n", dipendente.retribuzione);
             break;      
     }
     getch ();       
}
Quindi per non avere problemi mi sconsigliare le variabili "char" per le scelte? Il mio obiettivo è quello di creare programmi lineari e sintatticamente corretti dovendo dare SOLO un esame di informatica (a breve) nel mio corso di laurea.
__________________
Ci sono porte che ti lasciano entrare e uscire
Ma non sono mai aperte. (T. Yorke)
retnI W è offline   Rispondi citando il messaggio o parte di esso