Cancellazione di un elemento da una lista
Salve a tutti, sto lavorando ad un programma che, dopo aver trasferito da un file i dati delle prestazioni effettuate in un centro benessere, li gestisca di volta in volta e, ad un certo punto dell'esercizio, mi viene chiesto di creare una funzione che, chiesto il numero di prestazione che si vuole cancellare, cancelli tale prestazione assegnando all'indice della prestazione il valore 0. Mi date una mano?
Risposte
ci sono $\infty^n$ modi di implementare un programma del genere. Tu come inizieresti?
int cerca(prestazione ElencoPrestazioni[], int n){ int k; while(k<n){ if(k==n) return k; else k++; return -1; } } void cancellaPrestazione(prestazione ElencoPrestazioni[], int n){ int n_prestazione; int cancellate=0; do{ printf("Inserire un numero di prestazione: \n"); scanf("%d", &n_prestazione); }while((n_prestazione<=0)||(n_prestazione>n)); int i; int c=cerca(ElencoPrestazioni,n); for(i=0; i<n; i++){ if(c>=0){ i=0; cancellate++; } } printf("Sono state cancellate %d prestazioni: \n", cancellate); printf("Prestazione n.%d \n", n_prestazione); }
Non si capisce nulla, puoi racchiudere tra i code tags?
Mi scuso, sono nuova nel forum e non so farlo.. come devo fare?
Premi il bottone, MODIFICA nel terzo messaggio della discussione e racchiudi il codice tra
[code][/code].
Fatto!
Non ho capito che senso ha la funzione cerca, tuttavia, secondo te in che caso, "cerca" restituisce un valore diverso da -1?
Infatti mi sono accorta che non ha molto senso. La mia idea era quella di ricercare la prestazione desiderata scorrendo il vettore e, in caso positivo, restituire un valore positivo, altrimenti -1
Ok, tralasciando un attimo l'utilità della funzione, riesci a capire perché essa restituisce sempre -1?
Sinceramente no..
Riesci a descrivere a parole il comportamento della funzione?
Probabilmente per la condizione imposta nel while
Non è ciò che ti ho chiesto. Comunque se non sai rispondere, ti consiglio di iniziare con esercizi più semplici.