Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/04/2008, 05:25
athiria
 
Fecha de Ingreso: enero-2008
Mensajes: 22
Antigüedad: 17 años
Puntos: 0
De acuerdo ¿Porque esta lista enlazada funciona rara? (C)

Hola de nuevo!

Estoy ahora estudiando listas enlazadas y estoy teniendo una ardua lucha con una.

Compilado con Eclipse.

El programa lo que hace es cargar una lista enlazada de 5 elementos y busca el elemento que le pidas.

Problemas:

Introduzco los datos: 1,2,3,4 y 5.

Si busco cualquiera esos números dice que existe el elemento en la lista. Eso esta bien.

Pero por ejemplo si busco el 6, no me dice absolutamente nada, cuando debería decirme algo.

Código:
	if(pA->data==num)
		printf("El elemento se encuentra en la lista");
	else
		printf("El elemento no se encuentra en la lista");
Código:
#include <stdio.h>
#include <stdlib.h>
#define NUMREG 5

struct FINT{
	int data;
	struct FINT *next;
};

void buscar (struct FINT *pA,int num)
{

	while(pA!=NULL && pA->data!=num)
	{
		pA=pA->next;
	}
	
	
	if(pA->data==num)
		printf("El elemento se encuentra en la lista");
	else
		printf("El elemento no se encuentra en la lista");
	// Esto no lo imprime nunca
}

int main()
{
	setbuf(stdout,NULL);
	struct FINT *pA,*nuevo;
	pA=NULL;
	nuevo=NULL;
	
	
	int x;
	for(x=0;x<NUMREG;x++)
	{
		nuevo=(struct FINT*)malloc(sizeof(struct FINT));
		printf("Introduzca un dato:");
		scanf("%d",&nuevo->data);
		nuevo->next=pA;
		pA=nuevo;
	}

	
	int num;
	puts("Introduzca el numero que desea buscar en la lista");
	scanf("%d",&num);
	buscar(pA,num);
		
	return 0;
}
Saludos y gracias anticipadas por cualquier ayuda que puedan prestarme :D

Última edición por athiria; 05/04/2008 a las 06:34