Salve ho fatto un semplice programma in c per la gestione di un magazzino ma non mi vanno due funzioni. Questo è quello che dovrebbero fare:
ModificaPrezzo
Funzione che prende in ingresso il nome dell’articolo ed un prezzo e ne modifica il
valore nell’archivio del magazzino.
ModificaQt
Funzione che prende in ingresso il nome dell’articolo ed una quantit`a e ne modifica
il valore nell’archivio del magazzino.
E qui c'è il codice. Dove ho sbagliato?
codice:#include <stdio.h> #include <string.h> void InsArticolo(char[], int, float); void ModificaPrezzo(char[], float); void ModificaQt(char[], int); void StampaPrezzo(float, float); typedef struct{ char tipo[20]; int quantit; float prezzo; }articolo; articolo magazzino[100]; int count=0; main() { char c, n[20]; int q; float p, prezzo1, prezzo2; do{ printf("1-Inserisci Articolo\n"); printf("2-Modifica Prezzo\n"); printf("3-Modifica Quantita'\n"); printf("4-Stampa Prezzo\n"); printf("0-Fine\n"); c=getchar(); getchar(); switch (c) { case '1': printf("Articolo: "); scanf("%s", n); printf("\nQuantita': "); scanf("%d", &q); printf("\nPrezzo: "); scanf("%f", &p); InsArticolo(n, q, p); break; case '2': printf("\nArticolo: "); scanf("%s", n); printf("\nPrezzo: "); scanf("%f", &p); ModificaPrezzo(n, p); break; case '3': printf("\nArticolo: "); scanf("%s", n); printf("\nQuantita': "); scanf("%d", &q); ModificaQt(n, q); break; case '4': printf("\nPrezzo1: "); scanf("%f", &prezzo1); printf("\nPrezzo2: "); scanf("%f", &prezzo2); StampaPrezzo(prezzo1, prezzo2); break; case '0': return 0; } while(!getchar()); }while(c); } void InsArticolo(char n[], int q, float p) { strcpy(magazzino[count].tipo, n); magazzino[count].quantit=q; magazzino[count].prezzo=p; ++count; } void ModificaPrezzo(char n[], float p) { int i; for(i=0; i<count; i++) { if(magazzino[i].tipo == n) magazzino[i].prezzo=p; } } void ModificaQt(char n[], int q) { int i; for(i=0; i<count; i++) { if(magazzino[i].tipo == n) magazzino[i].quantit=q; } } void StampaPrezzo(float p1, float p2) { int i, elem=0; for (i=0; i<count; i++) { if(magazzino[i].prezzo > p1 && magazzino[i].prezzo < p2) { printf("%s---%d---%f\n", magazzino[i].tipo, magazzino[i].quantit, magazzino[i].prezzo); elem++; } } printf("\nSono stati trovati %d articoli pari al %d per cento del totale\n" , elem, elem*100/count); }

Rispondi quotando