Problema Switch

di il
6 risposte

Problema Switch

Scusate mitici...ho un problemino con questo programma...dunque, un azienda di vendita vende 5 prodotti, i cui prezzi sono cosi raggruppati:

N°prodotto Prezzo
1 2.98
2 4.50
3 9.98
4 4.49
5 6.87
scrivete un programma che legga una serie di coppie di numeri:
1) numero di prodotto
2)quantità venduta in un giorno

Il vostro programma dovrà utilizzare una switch, per aiutare a determinare il prezzo al dettaglio di ogni prodotto. Il vostro programma dovrà calcolare e visualizzare il valore tot. al dettaglio di tutti i prodotti venduti nell'ultima settimana...dunque, ho ragionato cosi, il valore dei prodotti venduti nel corso di un giorno, lo dovrei decidere io con la sequenza di interi, da inserire all'inizio...tipo 11122333 ecc..tanto il char leggerà un valore per volta, sia che sia premuto enter ad ogni valore, che in ogni serie...tenuto presente questo ho fatto:



#include <stdio.h>

main()
{
      
      int number;
      float totpA, totpB, totpC, totpD, totpE, totprodotti;
      
      totpA = 0;
      totpB = 0;
      totpC = 0;
      totpD = 0;
      totpE = 0;
      
      printf("Inserisci i numeri dei prodotti venduti in un giorno(da 1 a 5): ");
      scanf("%d", &number);
      
      
        while((number = getchar()) != EOF){          
                      
                      
        if(number == '\n')
        if(number == ' ')
        
        switch(number){
        
              
              
        case 1 :
             
        totpA += 2.98;
        
        break;
        
        
        case 2 :
             
        totpB += 4.50;
        
        break;
        
        
        case 3 :
             
        totpC += 9.98;
        
        break;
        
        
        
        case 4 :
             
        totpD += 4.49;
        
        break;
        
        
        
        case 5 :
             
        totpE += 6.87;
        
        break;
        
        
        default:
              
              printf("\n\nValore non corretto!!");
              
              break;
              }
              }
        
        
        
        printf("\n\nIl valore tot. dei prodotti venduti in una settimana e': %.2f", totpA + totpB + totpC + totpD + totpE);
        
        return 0;
        
        }
il problema è che...resta sempre a 0...e non capisco il motivo..

6 Risposte

  • Re: Problema Switch

    Il programma così come l'hai scritto entra nel switch solo se il carattere è contemporaneamente un '\n', un spazio e uno dei numeri da 1 a 5. Cosa assai improbabile che accada. togli i due if iniziali e sostituisci i numeri nei case con 'numero'. Quindi invece di case 1 avrai case '1' e così via.
  • Re: Problema Switch

    Dunque sky, intanto ti ringrazio come sempre della tua attenzione..e poi...si..hai ragione gli if, ho sbagliato dovevano essere !=...poi, per quanto iguarda il programma, accade una cosa curiosa, ovvero...se inserisco due sequenze di numeri, il conto viene elaborato..ma se...inserisco un solo valore, ad esempio 1, e faccio EOF...la risposta continua ad essere 0...
  • Re: Problema Switch

    
    printf("Inserisci i numeri dei prodotti venduti in un giorno(da 1 a 5): ");
          scanf("%d", &number);
    
    questo che ruolo ha?
  • Re: Problema Switch

    Beh...per dare chiarezza all'input...ma...in realtà...avendolo tolto...il programma torna perfettamente...
  • Re: Problema Switch

    Che credi che le domande li sparo a muzzo io? Era mirata per farti arrivare alla soluzione.
  • Re: Problema Switch

    Ma guarda, ti ringrazio dei suggerimenti e non delle risposte...imparo meglio...dai miei errori...e mi perfeziono...lo trovo piu stimolante...ho finito adesso la struttura delle istruzioni...e mi diverto un casino...solo delle volte, mi inchiodo in cavolate astronomiche mettere una scanf, in un getchar......ehehhe ti ringrazio ancora...sky!!
Devi accedere o registrarti per scrivere nel forum
6 risposte