Vorrei chiedere 2 consigli su queste 2 liste in C
1)In questo codice vorrei ritornare il valore del quarto elemento sommato ai 3 precedenti se è maggiore,faccio un esempio
1-2-3-->7<--2-3-4-->5<--1-2-3-->9<----
ritorna 7 + 9
ma il codice mi da un errore che vi indico dove credo sia
codice:int f (node *l1) { int z=0; node *x,*k,*q,*p; if(l1==NULL) return 0; if(l1->next==NULL) return l1->data; p=l1->next; if(l1->next->next==NULL) return l1->data+p->data; else{ x=l1;k=l1->next;l1=l1->next->next; ----->while((x!=NULL) && (k!=NULL))<------ { if(l1->data>x->data+k->data) z=z+l1->data; x=x->next->next->next; k=k->next->next->next; l1=l1->next->next->next;}} return z; }
2)Ho una lista e vorrei far duplicare a coppie il prodotto degli elementi,faccio un esempio
1-2-3-4-5
2-12
e funziona,cosa devo mettere per stampare il 5 da solo
Ultima cosa se volessi al posto invio chiudere la finistra ripetere l' azione cosa devo scrivere?codice:node* moltiplica(node *l1) { node *p,*k,*head,*tail; head=NULL;int pos=1; if(l1==NULL) return NULL; else if(l1->next==NULL) return NULL; while((l1!=NULL) && (l1->next!=NULL)) {k=l1;l1=l1->next; p=newnode(); p->data=k->data*l1->data; p->next=NULL; if(head==NULL) {head=p,tail=p;} else{tail->next=p;tail=tail->next;} k=k->next; l1=l1->next;} return head;}

Rispondi quotando