Salve ho realizzato questo programmino in C per allenarmi un pò con le strutture. Sembra che funzioni bene (ditemi se mi è sfuggita qualcosa). L'unico difetto che non capisco è che quando nel menù seleziono 4 per visualizzare tutti gli articoli, mi compare tutto l'elenco regolarmente ma non riparte il menù subito dopo. Mi compare il trattino lampeggiante e va avanti solo se premo un tasto. Come mai? Ecco il codice:

codice:
/*PROGRAMMA PER LA GESTIONE DI UN DATABASE DI FUMETTI*/

#include <stdio.h>
#include <string.h>

typedef struct {
char nome[20];
int numero;
int quantit;
float prezzo;
} fumetto;

fumetto n[100];

main()

{
int i, quantit, elem, numtemp, count=0;
char c, ntemp[20];
float prezzo, p1, p2;


do {
printf("Menu':\n");
printf("1-Inserisci fumetto\n");
printf("2-Modifica quantita'\n");
printf("3-Modifica prezzo\n");
printf("4-Visualizza tutti i fumetti\n");
printf("5-Visualizza in base al prezzo\n");
printf("6-Visualizza in base al nome\n");
printf("0-ESCI\n\n");

printf("Inserisci la scelta: ");
c=getchar();
getchar();

switch (c)
{
       case '1':
            
            printf("\nNome: ");
            scanf("%s", n[count].nome);
            printf("\nNumero: ");
            scanf("%d", &n[count].numero);
            printf("\nQuantita': ");
            scanf("%d", &n[count].quantit);
            printf("\nPrezzo: ");
            scanf("%f", &n[count].prezzo);
            ++count;
            break;
        
        case '2':
             
             printf("\nNome: ");   
             scanf("%s", ntemp);
             printf("\nNumero: ");
             scanf("%d", &numtemp);
             printf("\nNuova quantita': ");
             scanf("%d", &quantit);
             for(i=0; i<count ; ++i)
             {
                      if(n[i].numero == numtemp && !stricmp(n[i].nome, ntemp))
                      n[i].quantit = quantit;
                      
             }
             break;
             
         case '3':
              
              printf("\nNome: ");   
              scanf("%s", ntemp);
              printf("\nNumero: ");
              scanf("%d", &numtemp);
              printf("\nNuovo prezzo: ");
              scanf("%f", &prezzo);    
              for(i=0; i<count ; ++i)
              {
                       if(n[i].numero == numtemp && !stricmp(n[i].nome, ntemp))
                       n[i].prezzo = prezzo;
                      
              }
              break;
          
          case '4':
              
              for(i=0; i<count ; ++i)
              {
                       printf("\n%s---%d---%d---%f\n\n", n[i].nome, n[i].numero, n[i].quantit, n[i].prezzo);
              }
              break;
          
          case '5':
               
               printf("\nPrezzo 1: ");
               scanf("%f", &p1);
               printf("\nPrezzo 2: ");
               scanf("%f", &p2);
               for(i=0; i<count ; ++i)
               {
                        if(n[i].prezzo > p1 && n[i].prezzo < p2)
                        {
                        printf("\n%s---%d---%d---%f\n\n", n[i].nome, n[i].numero, n[i].quantit, n[i].prezzo);
                        elem++;
                        }
               }
               printf("\n\nSono stati trovati %d articoli per un totale del %d per cento del magazzino\n\n", elem, elem*100/count);
               elem=0; 
               break;
               
            case '6':
                 
               printf("\nNome: ");   
               scanf("%s", ntemp);
               for(i=0; i<count ; ++i)
               {
                       
                        if( !stricmp(n[i].nome, ntemp))
                        {
                        printf("\n%s---%d---%d---%f\n\n", n[i].nome, n[i].numero, n[i].quantit, n[i].prezzo);
                        elem++;
                        }    
                      
               }
               printf("\n\nSono stati trovati %d articoli per un totale del %d per cento del magazzino\n\n", elem, elem*100/count);
               elem=0;
               break;       
                   
              
             case '0':
               
               return 0;
}               
while(!getchar());                  
}while(n);
}