|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2006
Messaggi: 314
|
[c] problema lista e puntatori
Ragazzi ho un problema con questo codice, dovrebbe cancellare da una lista gli elementi maggiori di 11
Codice:
int main(int argc, char *argv[]) { int m[NR][NC]={3,58,4,7, 4,1,3,6, 15,11,6,1, 5,4,8,31 }; nodo *inizio=NULL; int i,j; for(i=0; i<NR; i++) { for(j=0; j<NC; j++) { if(i==j && primo(m[i][j])) inizio=makeFifo(inizio,m[i][j]); if(i+j == NC-1 && primo(m[i][j])) inizio=makeFifo(inizio,m[i][j]); } } printList(inizio); nodo *p = inizio; while(p) { if(p->info > 11) inizio=delete(inizio,p->info); p=p->next; } printf("\n"); printList(inizio); fflush(stdin); getchar(); } nodo * delete(nodo *inizio, int cosa) { int pos=0; nodo *aux, *killer; if(inizio->info == cosa) { killer=inizio; inizio=inizio->next; free(killer); write(cosa,pos); } else{ aux=inizio; while(aux->next->info !=cosa && aux) { aux=aux->next; pos++; } if(aux) { killer=aux->next; aux->next=killer->next; free(killer); write(cosa,pos); } else printf("Elemento Assente"); } return (inizio); }
__________________
Athlon64 x2 5600 - AsRock ALiveNF5eSata2+ - kingston 2GB ddr2 800 - GeForce 8800gts 320MB |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2006
Messaggi: 314
|
Lo ho provato su XP e funziona
![]()
__________________
Athlon64 x2 5600 - AsRock ALiveNF5eSata2+ - kingston 2GB ddr2 800 - GeForce 8800gts 320MB |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2000
Città: Bari-Brindisi-Lecce e prov
Messaggi: 424
|
Utilizzi dei puntatori a nodo che pero' non hai definito in alcun punto.
__________________
VoIp Gratis - Adsl senza canone telecom Ho trattato con: adarkar,Bobosassa, matrix866,M@t,k|o, percky,s5otto, Rospaccio, CluRaCaN, Igor,Zizziry, bokkakesballa, Pex,freewilly, Umbyboy,DAVO, nathbigga, fabiuxx ed altri. Diffidate di quinnuxxa |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:32.