Retroceder   Foros del Web > Temas generales de computación > Programación > C/C++

Respuesta
 
Herramientas Desplegado
Antiguo 28-abr-2008, 12:18   #1 (permalink)
nikolog ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 17
problemas con funciones

tengo problemas con las funciones, al aser el programa sin funciones no tengo niun problema pero al momento de aser una funcion el compilador me tira errores y warning
en la funcion insertar es donde tengo el problema y nose muy bn como trabaja la funcion si alguien me pudiera explicar o arreglar esa funcion, tambien intente aser una funcion para mostrar la lista pero tampoko me funciono.
gracias



#include<stdio.h>
#include<stdlib.h>
#include<conio.h>


typedef struct nodo
{
int valor;
struct nodo *siguente;
}tiponodo;




struct nodo *crea_nodo(int);
void insertar(struct nodo *q,int x);

void main()
{

struct nodo *q,*L=NULL;
int z,x;

while(1)
{
printf("ingrese valor para lista\n");
scanf("%d",&z);
if(z==0)break;
if(L==NULL)
L=crea_nodo(z);
else{

q=L;
L=crea_nodo(z);
L->siguente=q;
}

}


q=L;

while(q != NULL)
{
printf("%d->",q->valor);
q=q->siguente;
}

getch();

printf("ingrse numero");
scanf("%d",&x);


void insertar(L, x);
}



struct nodo *crea_nodo(int z){


struct nodo *p;
p=malloc(sizeof(struct nodo));
p->valor=z;
p->siguente=NULL;

return p;}


void insertar(struct nodo *q,int x){

struct node *p=crea_nodo(x);
p->siguente=q;
q=p;}
nikolog está desconectado   Responder Citando
Antiguo 02-may-2008, 05:43   #2 (permalink)
_Dark_Hunter_ ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2008
Mensajes: 3
Re: problemas con funciones

Hola!!

En primer lugar la función para mostrar la lista la podrías hacer recursiva y muy sencillita:

void imprimir(struct nodo * l){
if (l==NULL)
printf("\n LISTA VACIA \n");
else{
printf("%d",l->valor);
imprimir(l->siguiente); /*Esto es lo más importante de esta función,se llama recursivamente al siguiente elemento de la lista*
}
}

P.D: Si cambias el orden del printf (ANTES O DESPUES de la llamada recursiva) se imprimirá en orden inverso o en orden correcto. PRUEBALO!!
_Dark_Hunter_ está desconectado   Responder Citando
Antiguo 02-may-2008, 05:47   #3 (permalink)
_Dark_Hunter_ ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2008
Mensajes: 3
Re: problemas con funciones

Una cosa que veo que haces mal:

cuando pones p=malloc(sizeof(struct nodo));

la llamada malloc sirve para reservar memoria y se le dice el tamaño eso está bien, pero malloc te devuelve un puntero sin tipo (void) por lo que tienes que convertirlo con un cast.

p=(struct nodo *)malloc(sizeof(struct nodo));
_Dark_Hunter_ está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 02:06.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93