06/07/10 18:15
Bladex
Mi date una mano con questo programma?...
Devo simulare la gestione di uno smaltitore di rifiuti di 5 tipi di prodotti.
Ogni prodotto ha nome, codice e prezzo.In input si prende il budget iniziale..
Poi l'utente deve inserire un prodotto da smaltire e verificare se ci sono soldi a sufficienza per smaltire il prodotto.
Il programma deve verificare inoltre se è possibile inserire il prodotto scelto, dato che il massimo numero di prodotti per un singolo tipo è di 20.
Ed a fine giornata bisogna visualizzare un elenco dei prodotti riciclati per ogni categoria.
Il do while nel case è sbagliato..
Quando si seleziona un prodotto ripete il ciclo per 20 volte..
mentre io volevo che ripetesse le istruzioni nel caso in cui si seleziona quel prodotto..
Quella parte non riesco a capire come impostarla...
Ringrazio tutti anticipatamente
Devo simulare la gestione di uno smaltitore di rifiuti di 5 tipi di prodotti.
Ogni prodotto ha nome, codice e prezzo.In input si prende il budget iniziale..
Poi l'utente deve inserire un prodotto da smaltire e verificare se ci sono soldi a sufficienza per smaltire il prodotto.
Il programma deve verificare inoltre se è possibile inserire il prodotto scelto, dato che il massimo numero di prodotti per un singolo tipo è di 20.
Ed a fine giornata bisogna visualizzare un elenco dei prodotti riciclati per ogni categoria.
#include <stdio.h> int main () { int n,x,s=0,u=0,c=0,v=0,p=0,i=0; float budget; struct rifiuti { char nome[15]; char codice[5]; float prezzo; } secco={"Secco","01",30.0}, umido={"Umido","02",22.5}, carta={"Carta","03",18.5}, vetro={"Vetro","04",25.0}, plastica={"Plastica","05",35.0}; printf("Inserire il budget iniziale : "); scanf("%f",&budget); printf("Quanti prodotti intendi inserire nel corso della sessione di riciclo? : "); scanf("%d",&n); printf("Elenco dei prodotti che e' possibile riciclare : \n"); printf(" %s ",secco.codice); printf("%s",secco.nome); printf(" %1.f\n",secco.prezzo); printf(" %s ",umido.codice); printf("%s",umido.nome); printf(" %1.f\n",umido.prezzo); printf(" %s ",carta.codice); printf("%s",carta.nome); printf(" %1.f\n",carta.prezzo); printf(" %s ",vetro.codice); printf("%s",vetro.nome); printf(" %1.f\n",vetro.prezzo); printf(" %s ",plastica.codice); printf("%s",plastica.nome); printf(" %1.f\n",plastica.prezzo); for (i=1;i<=n;i++) { printf("Selezionare il codice del prodotto da riciclare\n"); scanf("%d",&x); switch (x){ case 1: do { printf("Hai scelto di riciclare il secco, ora hai a disposizione %f\n",budget-secco.prezzo); s++; budget= budget-secco.prezzo;} while (s<=20 || budget>secco.prezzo); break; case 2: do { printf("Hai scelto di riciclare l'umido, ora hai a disposizione %f\n",budget-umido.prezzo); u++; budget= budget-umido.prezzo;} while (u<=20 || budget>secco.prezzo); break; case 3: do { printf("Hai scelto di riciclare la carta, ora hai a disposizione %f\n",budget-carta.prezzo); c++; budget= budget-carta.prezzo;} while (c<=20 || budget>secco.prezzo); break; case 4: do{ printf("Hai scelto di riciclare il vetro, ora hai a disposizione %f\n",budget-vetro.prezzo); v++; budget= budget-vetro.prezzo;} while (v<=20 || budget>secco.prezzo); break; case 5: do{ printf("Hai scelto di riciclare la plastica, ora hai a disposizione %f\n",budget-plastica.prezzo); p++; budget= budget-plastica.prezzo;} while (p<=20 || budget>secco.prezzo); break; default: printf("Hai sbagliato l'inserimento, riprova");} } printf("Sessione finita"); }
Il do while nel case è sbagliato..
Quando si seleziona un prodotto ripete il ciclo per 20 volte..
mentre io volevo che ripetesse le istruzioni nel caso in cui si seleziona quel prodotto..
Quella parte non riesco a capire come impostarla...
Ringrazio tutti anticipatamente
Ultima modifica effettuata da Bladex 06/07/10 18:36
aaa