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
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;}
Ultima cosa se volessi al posto invio chiudere la finistra ripetere l' azione cosa devo scrivere?