mi sembra a prima vista sia sbagliato anche la dichiarazione del "nodo"...Originariamente inviato da -Yara-
....
L'altro l'ho risolto cosi' (metto solo la funzione che confronta)codice:#include <stdio.h> #include <malloc.h> using namespace std; struct nodo { int info; nodo* next; }; nodo* Crea_lista(); <---- void Visualizza_lista(nodo*); void Elimina(nodo*); int main() { nodo* lista=NULL; //creo la lista lista=Crea_lista(); Visualizza_lista(lista); Elimina(lista); Visualizza_lista(lista); fflush(stdin); getchar(); return 0; } nodo* Crea_lista() { nodo *p,*punt; int i,n; printf("\nNumero elementi lista: "); scanf("%d",&n); if(n==0) { p=NULL; } else { //inserimento del primo valore p=(nodo*)malloc(sizeof(nodo)); printf("\nInserisci il primo valore"); scanf("%d",&p->info); punt=p; } for(i=2;i<=n;i++) { punt->next=(nodo*)malloc(sizeof(nodo)); punt=punt->next; //scorri printf("\nInserisci il %d elemento: ",i); scanf("%d",&punt->info); } punt->next=NULL; return p; } void Visualizza_lista(nodo* lista) { printf(" Lista---> "); while(lista!=NULL) { printf("%d",lista->info); printf(" ---> "); lista=lista->next; } printf("NULL\n\n"); getchar(); } void Elimina(nodo* lista) { nodo* scorri=lista; printf("LOL"); while(scorri!=NULL) { if(scorri->info%2==0) { printf("Trovato elemento pari, eliminazione in corso"); scorri=scorri->next; free(scorri); lista->next=scorri->next; } scorri=scorri->next; } }
Grazie a chi mi vorrà aiutarecodice:int Confronta(nodo* lista,nodo* lista2) { nodo* scorri1; nodo* scorri2; scorri1=lista; scorri2=lista2; while(scorri1!=NULL) { while(scorri2!=NULL) { if(scorri2->info==scorri1->info) return scorri1->info; scorri2=scorri2->next; } scorri1=scorri1->next; } return -1; }![]()
cioè tu hai dichiarato un struct nodo{...}
poi ai dichiarato lista come nodo *lista...
così è sbagliato...![]()
![]()
quindi puoi fare
oppure usi la typedef per ridefinirti "il nome" di nodocodice:struct nodo{...} .... struct nodo *lista;
quando ho tempo mi vedo le funzioni che ai scritto...codice:struct nodo{...} typedef struct nodo elemNodo; .... elemNodo *lista;
![]()
![]()
![]()