PDA

View Full Version : [C]MI ERO DIMENTICATO UN PEZZO


emiliano30
03-06-2005, 16:12
:eek:
in teoria dovrei riempire la lista e visualizzarla.....non so :mbe: ma ho come la sensazione che manchi qualcosa


typedef struct nodoLista NODOLISTA;
typedef NODOLISTA *NODOLISTAPTR;

int riempi(int dato);
/*int somma (int somma);*/

int main()
{

int dato,somma,risultato;
/*risultato=somma();
printf("la somma è%d\n",risultato);*/
system("PAUSE");
return 0;
}

int riempi(int dato){

NODOLISTAPTR currentPtr;
NODOLISTAPTR newPtr;
while(currentPtr!=NULL){/*se la memoria è disponibile*/
newPtr=malloc(sizeof(NODOLISTA));/*creo nodo*/

newPtr->dato=rand()%5;/*memo il valore nel nodo*/
newPtr->nextPtr;
}
/*Visualizza lista*/
if (currentPtr=NULL){
printf("la lista è vuota\n\n");
}
else{
printf("la lista è:\n");
while(currentPtr!=NULL){
printf("%c-->",currentPtr->dato);
currentPtr=currentPtr->nextPtr;
}
}

/*int somma (int somma)*/
}

emiliano30
03-06-2005, 16:15
#include<stdlib.h>
#include<stdio.h>
struct nodoLista{
int dato;
struct nodoLista *nextPtr;
};
typedef struct nodoLista NODOLISTA;
typedef NODOLISTA *NODOLISTAPTR;

int riempi(int dato);
/*int somma (int somma);*/

int main()
{

int dato,somma,risultato;
/*risultato=somma();
printf("la somma è%d\n",risultato);*/
system("PAUSE");
return 0;
}

int riempi(int dato){

NODOLISTAPTR currentPtr;
NODOLISTAPTR newPtr;
while(currentPtr!=NULL){/*se la memoria è disponibile*/
newPtr=malloc(sizeof(NODOLISTA));/*creo nodo*/

newPtr->dato=rand()%5;/*memo il valore nel nodo*/
newPtr->nextPtr;
}
/*Visualizza lista*/
if (currentPtr=NULL){
printf("la lista è vuota\n\n");
}
else{
printf("la lista è:\n");
while(currentPtr!=NULL){
printf("%c-->",currentPtr->dato);
currentPtr=currentPtr->nextPtr;
}
}

/*int somma (int somma)*/
}

Fenomeno85
03-06-2005, 16:23
visto in due secondi crei la lista e te la perdi pure dopo che te la sei passata


~§~ Sempre E Solo Lei ~§~

emiliano30
03-06-2005, 16:52
CHE SIGNIFICA CHE ME LA PERDO?MEGLIO DOVE SBAGLIO?
domanda: come faccio per scorrere la lista?dovrei posizionare un puntatore all'inizio?come?

Fenomeno85
03-06-2005, 17:00
allora


if (currentPtr=NULL){
printf("la lista è vuota\n\n");
}


le condizioni di uguaglianza si fanno con due =

fare infiniti nodi finche non finisce la memoria non mi sembra il caso


newPtr->nextPtr;


sta roba è inutile non fai nulla.

La lista non la assembli neanche crei mille miliardi di nodi e non li unisci.

Quindi crei molta spazzutara.

quando visualizzi o devi scorrere una lista la testa NON sposti ma ti basi su un puntatore alla testa nuovo

~§~ Sempre E Solo Lei ~§~

Fenomeno85
03-06-2005, 17:05
così scorri una lista senza perdere nulla


app = testa;
while (app != NULL){
printf ...
app = app -> pNext;
}



~§~ Sempre E Solo Lei ~§~

emiliano30
03-06-2005, 17:17
ora cerco di correggerlo...grazie