Salve a tutti, il problema è il seguente:
"Data una lista di interi in forma collegata con puntatori, scrivere una funzione che calcoli le occorrenze di CIASCUN elemento e le stampi a video".
Ora, io ho provato a risolvere il problema con il seguente programma, che si compone di due funzioni, più la chiamata dal main:
(il problema è che, se ad esempio la lista è 5-3-5-8-NULL, mi viene stampato;
"5 compare 2 volte
3 compare 1 volta
5 compare una volta
8 compare una volta
ma io, ovviamente, vorrei che il programma scrivesse una sola volta l'occorrenza dei numeri ripetuti, in questo caso 5... come posso risolvere?? grazie in anticipo!)
ecco come ho fatto...
"Data una lista di interi in forma collegata con puntatori, scrivere una funzione che calcoli le occorrenze di CIASCUN elemento e le stampi a video".
Ora, io ho provato a risolvere il problema con il seguente programma, che si compone di due funzioni, più la chiamata dal main:
(il problema è che, se ad esempio la lista è 5-3-5-8-NULL, mi viene stampato;
"5 compare 2 volte
3 compare 1 volta
5 compare una volta
8 compare una volta
ma io, ovviamente, vorrei che il programma scrivesse una sola volta l'occorrenza dei numeri ripetuti, in questo caso 5... come posso risolvere?? grazie in anticipo!)
ecco come ho fatto...
Codice:
....
int main(){
...
visita(lista);//chiamata dal main:
...}
//definizione funzioni
void visita(struct list *ptr){
while(ptr!=NULL){
print_occur(ptr, ptr->value);
ptr=ptr->next_ptr;}
}
void print_occur(struct list *ptr, int valore){
int count=0;
while (ptr !=NULL){{//(ptr!=NULL, ptr=ptr->next_ptr)
if ((ptr->value)==valore){
count++;
}
ptr=ptr->next_ptr;
}
}
printf("Il valore %d compare %d volte", valore, count);
}
[code]
Ultima modifica da un moderatore: