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);  
}