Ho due funzioni: una mi chiede di inserire il nome del prodotto che voglio eliminare, l'altro mi prende questo nome, lo confronta con tutti quelli possibili e mi ritorna 1 o 0 a secondo se è stato trovato o no un nome uguale. Non mi da nessun errore in fase di compilazione ma quando lo eseguo e immetto i dati mi restituisce sempre 0.
Ecco le due function:
codice:
/*Funzione per eliminare un prodotto dato il nome*/
void EliminaProdotto (int mycar[50])
{
int i, j, contaprodotti = 0,risultato;
char deleteprodotto[50];
/*Inserisco la lista prodotti*/
listaprodotti();
printf("Codice\tNome\t\tDescrizione\t\t\tCosto\tSconto\n");
/*Mostro la lista*/
for(i=0;i<50;i++)
{
if((j = mycar[i]) != -1)
{
printf("%d\t%s\t%s\t%d\t%d\n", elemento[j].codice, elemento[j].nome, elemento[j].desc, elemento[j].costo, elemento[j].sconto);
contaprodotti += 1;
}
}
/*Se i prodotti nel carrello sono 0 mostro che non ci sono prodotti nel carrello*/
if(contaprodotti == 0)
{
printf("Non ci sono prodotti nel carrello\n\n");
}
printf("Inserisci il nome del prodotto che vuoi eliminare dal carrello = ");
scanf("%s", deleteprodotto);
risultato = Delete(mycar, deleteprodotto);
if(risultato != 0)
{
printf("Prodotto eliminato correttamente\n");
} else {
printf("Non esiste alcun prodotto con questo nome\n");
}
}
int Delete (int mycar[50], char deleteprodotto[50])
{
int i,j,successo=0;
listaprodotti();
for(i=0;i<50 && successo==0;i++)
{
if((j = mycar[i]) == -1)
{
successo = 0;
} else if(deleteprodotto == elemento[j].nome)
{
j = -1;
successo = 1;
return 1;
}
}
return 0;
}
Dov'è l'errore? >.<