Se inserisco entrambe le liste vuote, mi da ,in linux questo messaggio "Floating point exception",come posso risolvere
codice:#include <stdlib.h> #include <stdio.h> typedef struct nod { int data; struct nod *next; struct nod *prev; } node; node *newnode(void) { return (node *)malloc(sizeof(node)); } node *buildlis() { int x; node *lis, *p, *last; printf("nuovo numero da inserire in lista:\n"); scanf("%d", &x); if (x<=0) lis= NULL; /* caso di lista vuota */ else { /* inserzione del primo elemento in una lista */ last=newnode(); lis = last; last->data = x; last->next = NULL; printf("nuovo numero da inserire in lista:\n"); scanf("%d", &x); while (x>0) /* Invariante: lis punta alla lista con tutti gli interi finora letti, tranne l'ultimo, e last punta all'ultimo nodo di tale lista */ { p=newnode(); p->data = x; p->next = NULL; last->next = p; last = p; printf("nuovo numero da inserire in lista:\n"); scanf("%d", &x); } } return(lis); } /* Stampa degli elementi di una lista */ /* Stampa degli elementi di una lista */ void printlis(node *lis) { node* tmp; tmp = lis; int somma=0;float media=0;int conteggio=0; while (tmp != NULL) { printf(">>>> %d\n", tmp->data) && (somma=somma+tmp->data) && (conteggio=conteggio+1) ; tmp = tmp->next; } printf("Somma %d\n",somma); printf("Conteggio %d \n",conteggio); media=(somma/conteggio); printf("Media %f",media); } void myFree ( node* top ) { node* tmp; tmp = top; while ( top->next != NULL ) { tmp = top->next; free(top); top = tmp; } } node *multipli(node *l1,node *l2) { node *p,*head,*tail; head=NULL; if((l1==NULL) && (l2==NULL)) {return head;}} int main() { node* head;node* head2;node *dispari; int n;int m=6; printf ("\n-----LISTA A-----\n"); head = buildlis ( ); printf ("\n-----LISTA B-----\n"); head2 = buildlis ( ); printf ("\n-----STAMPA LISTA A-----\n"); printlis(head); printf ("\n-----STAMPA LISTA B-----\n"); printlis(head2); printf ("\n-----STAMPA LISTA A MODIFICATA-----\n"); printlis(head); myFree ( head ); return 0; }

 
			
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando