01/04/17 17:16
Djot
Scusatemi , ho qualche problema su un piccolo esercizio riguardante le liste , vi elenco qui sotto il comando dell'esercizio e il mio codice sorgente :
"Letta in input una sequenza di numeri interi positivi memorizzarla in una ista. Costruire una seconda lista contenente soltanto gli elementi della prima lista che non siano numeri primi. Stampare la seconda lista."
Il codice crea e stampa la prima lista , ma tuttavia non stampa la seconda versione della lista (quella senza numeri primi) , potete elencarmi l'errore?
"Letta in input una sequenza di numeri interi positivi memorizzarla in una ista. Costruire una seconda lista contenente soltanto gli elementi della prima lista che non siano numeri primi. Stampare la seconda lista."
#include <iostream> using namespace std; struct lista{ int val; lista* next; }; lista* creaLista1(int m){ lista* aux ; lista* p=NULL; for(int i = m; i>0 ; i--){ aux = new lista; aux->val= i; aux->next=p; p = aux; } return (p); } lista* cerca(lista* p){ while(p!=NULL){ if((p->val)%2==0 || (p->val)%3==0){ cout << p->val; p = p->next;} else if((p->val)%2!=0 || (p->val)%3!=0) p->next = (p->next)->next; } return (p); } void stampa(lista* p){ while(p!=NULL){ cout << p->val; p = p->next; if(p!=NULL) cout << "->" ; } cout << endl; } int main(){ lista* P; P=creaLista1(5); stampa(P); cerca(P); return 0; }
Il codice crea e stampa la prima lista , ma tuttavia non stampa la seconda versione della lista (quella senza numeri primi) , potete elencarmi l'errore?
aaa