elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda a corregir programa en C++ Listas enlazadas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda a corregir programa en C++ Listas enlazadas  (Leído 1,568 veces)
orbel2

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda a corregir programa en C++ Listas enlazadas
« en: 25 Abril 2017, 19:32 pm »

Buenos Días, todos los demas puntos me funcionana correctamente pero para sacar los pares e impares no me funciona lo estaba intentando solo con los pares y no me da. Adjunto el programa. estoy trabajando en Dev c++

#include <iostream>
#include <malloc.h>


using namespace std;

struct lista
{
   int dato;
   struct lista *liga;

   };
   
struct lista *nuevo, *x, *null, *ant, *cab;
int i, n, valor, sw=0,par=0, num,pos=0,neg=0;

void crear_lista()
{

     i=1;
     cout<<"ingrese los nodos a crear"<<endl;
    cin>>n;
    nuevo=(struct lista *)malloc(sizeof(struct lista));
    cab=nuevo;
    cout<<"ingrese un valor"<<endl;
    cin>>valor;
    nuevo->dato=valor;
    nuevo->liga=NULL;
    ant=nuevo;
    while(i<n)
    {
       i=i+1;
      nuevo=(struct lista *)malloc(sizeof(struct lista));
      cout<<"ingrese un nuevo valor"<<endl;
      cin>>valor;
      nuevo->dato=valor;
      ant->liga=nuevo;
      nuevo->liga=NULL;
      ant=nuevo;
   
    }

}

void mostrar()
{
  x=cab;
  while(x!=NULL)
  {
     cout<<x->dato;
     x=x->liga;
  }

}

void buscar()
{
   sw=0;
   x=cab;
   cout<<"ingrese el dato a buscar"<<endl;
   cin>>valor;
   while(x!=NULL)
   {
     if(x->dato == valor)
        sw=1;
   }
   if(sw==1)
      cout<<"el dato se enncuentra en la lista"<<endl;
   else
      cout<<"el dato no se enncuentra en la lista"<<endl;
}


void borrar()
{
   x=cab;
    cout<<"Ingrese el dato a borrar"<<endl;
    cin>>valor;
    while(x!=NULL) {
        if(x->dato==valor) {
            if(x==cab) {
                cab=x->liga;
                x=NULL;
                free(x);
            } else {
                ant->liga=x->liga;
                free(x);
                x=ant->liga;
            }
        } else {
            ant=x;
            x=x->liga;
   }
   }
}

void pos_neg()
{
   int pos=0;
   int neg=0;
   x=cab;
   cout<<"ingrese el numero"<<endl;
   cin>>valor;
   while(x!=NULL)
   {
     if(x->dato > valor){
        pos=pos+1;
         ant=x;
            x=x->liga;
   }else{
          neg=neg+1;
            ant=x;
            x=x->liga;
      }
       
}
 cout<<"los numeros positivos son:"<<pos<<endl;
 cout<<"los numeros negativos son:"<<neg<<endl;
}

void pares()
{
int par=0;
x=cab;
 while(x!=NULL);
 {
  if(x->dato % 2 == 0)
       par=par+1;
   
         
 }
 cout<<"los numeros pares son:"<<par<<endl;   ///cout<<x->dato;
}


int main()
{
   int op, nuevo=NULL, ant=NULL, x=NULL, cab=NULL,par=0;
   cout<<"[1.] Crear la Lista"<<endl;
   cout<<"[2.] Buscar un Dato"<<endl;
   cout<<"[3.] Borrar un dato"<<endl;
   cout<<"[4.] Mostrar los datos"<<endl;
   cout<<"[5.] Pares"<<endl;
   cout<<"[6.] Positivos y Negativos"<<endl;
   cout<<"[7.] Salir"<<endl;

   do
   {
      cout<<"Digite una opcion"<<endl;
      cin>>op;
      switch(op)
      {
      case 1:crear_lista();
         break;
      case 2:buscar();
         break;
      case 3:borrar();
         break;
      case 4:mostrar();
         break;
      case 5:pares();
   
         break;
      case 6:pos_neg();
         break;
      
      }
   
   }
      while(op!=7);
      system("PAUSE()");

}


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayuda a corregir programa en C++ Listas enlazadas
« Respuesta #1 en: 26 Abril 2017, 12:08 pm »

En algunas funciones te olvidas de recorrer la lista y en el main tienes un gran problema en la línea de definición de variables.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pasar programa a Listas Enlazadas (C++)! Urgente!
Programación C/C++
1antares1 2 4,967 Último mensaje 28 Junio 2010, 10:02 am
por Eternal Idol
ayuda con listas enlazadas en c++!!!!
Programación C/C++
guanaco112 3 3,822 Último mensaje 2 Marzo 2012, 14:18 pm
por rir3760
AYUDA - Listas enlazadas en c++
Programación C/C++
Franher 1 2,095 Último mensaje 6 Agosto 2014, 22:11 pm
por Xandrete
AYUDA Listas enlazadas en c++
Programación C/C++
Franher 0 1,507 Último mensaje 8 Agosto 2014, 21:48 pm
por Franher
Programa en c++ listas doblemente enlazadas
Programación C/C++
Diosa21 0 9,636 Último mensaje 29 Marzo 2017, 19:48 pm
por Diosa21
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines