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:
Dov'è l'errore? >.<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; }

Rispondi quotando
