Normas del foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Noviembre 23, 2008, 03:43:58
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: AYUDA CON PROGRAMA EN C!! 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: AYUDA CON PROGRAMA EN C!!  (Leído 209 veces)
ktulucult
Recien Llegado
*
Desconectado Desconectado

Mensajes: 1


Ver Perfil
« en: Mayo 28, 2008, 07:37:12 »

 Huh
oya estaba inscrito aki y se me perdio la puta cuenta! estoy estudiando ing. en informatica y me han dado un ejercicio para estructura de datos. necesito alguna solucion urgente, gracias
el problema es el siguiente.

" ingresar en un cola 10 numeros por teclado, una vez ingresados mostrar solo los que se repiten"

intente hacer algo pero me caigo en comparar los mismo numeros, nose donde esta el problema, ayudeneme pliss Embarrassed

El codigo que estaba programando yo es el siguiente:
Código:

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

typedef struct nodo{
int dato;
struct nodo *siguiente;
}tipo_cola;
typedef tipo_cola *pnodo;
typedef tipo_cola *cola;


void pushCola (pnodo *primero, pnodo *ultimo, int v);
int popCola (pnodo *primero, pnodo *ultimo);

void main () {
pnodo p1=NULL, u1=NULL; //1º cola
pnodo ap2=NULL, au2=NULL;  //2º cola
   
cola pp4=NULL, uu4=NULL; //auxilar de la 2º
        cola pp5=NULL, uu5=NULL; //numeros repetidos.

int v, num, a, i, aux;

//ingresamos los elementos
for(i=0;i<10;i++){
printf("Ingrese el elemnto %d: ", i);
scanf("%d", &num);
                getchar();
pushCola(&p1,&u1,num);
                pushCola(&ap2,&au2,num);
}

//comparo
while(p1!=NULL && u1!=NULL){
v=popCola(&p1,&u1);   
                               

while(ap2!=NULL && au2!=NULL){
a=popCola(&ap2,&au2);
                               
if(v==a){
pushCola(&pp5,&uu5,v);  repetidos
}
                                 pushCola(&pp4,&uu4,a);
}

while(pp4!=NULL && uu4!=NULL){
a=popCola(&pp4,&uu4);
pushCola(&ap2,&au2,a);
}
}

        printf("\n los numeros que se repiten son: ");
       while(pp5!=NULL && uu5!=NULL){
        aux=popCola(&pp5,&uu5);
       cout<<"<- "<<aux<<" ->";
        }
               
}

void pushCola (pnodo *primero, pnodo *ultimo, int v) {
   pnodo nuevo;
   nuevo = (pnodo)malloc(sizeof(tipo_cola));
   nuevo->dato = v;
   nuevo->siguiente = NULL;
   if(*ultimo) (*ultimo)->siguiente = nuevo;
   *ultimo = nuevo;
   if(!*primero) *primero = nuevo;
}

int popCola(pnodo *primero, pnodo *ultimo) {
   pnodo nodo; /* variable auxiliar para manipular nodo */
   int v;      /* variable auxiliar para retorno */
   nodo = *primero;
   if(!nodo) return 0;
   *primero = nodo->siguiente;
   v = nodo->dato;
   free(nodo);
   if(!*primero) *ultimo = NULL;
   return v;
}


espero que me ayuden gracias de ante mano  Wink
En línea
Fulapol
Miembro
*****
Desconectado Desconectado

Mensajes: 43


fulapol@gmail.com
Ver Perfil WWW Email
« Respuesta #1 en: Mayo 28, 2008, 08:13:16 »

Código:


//ingresamos los elementos
for(i=0;i<10;i++){
printf("Ingrese el elemnto %d: ", i);
scanf("%d", &num);
                getchar();
pushCola(&p1,&u1,num);
                pushCola(&ap2,&au2,num);
}

//comparo
while(p1!=NULL && u1!=NULL){
v=popCola(&p1,&u1);  
                               

while(ap2!=NULL && au2!=NULL){
a=popCola(&ap2,&au2);
                              
if(v==a){//finalmente v y a siempre seran iguales
pushCola(&pp5,&uu5,v);  repetidos
}
                                 pushCola(&pp4,&uu4,a);
}

while(pp4!=NULL && uu4!=NULL){
a=popCola(&pp4,&uu4);
pushCola(&ap2,&au2,a);
}
}



espero que me ayuden gracias de ante mano  Wink

bueno dentro de las variables hize esto

int v, num, a, i, j, aux;

y en cuanto al codigo hice esto, es lo mas cercano que llegue al codigo

Código:
//comparo
j=1;
while(p1!=NULL && u1!=NULL){
    i=0;
  v=popCola(&p1,&u1);
while(ap2!=NULL && au2!=NULL){
  a=popCola(&ap2,&au2);
  pushCola(&ap2,&au2,a);
if(v==a && i>j){
  pushCola(&pp5,&uu5,a);
  break;
}
if(i==10)break;
i++;
  }
  j++;
  }
En línea

Porque juzgar a la gente, finalmente los grandes siempre son recordados y los demas en el pasado


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
darkest_shadow
Habitual
*****
Desconectado Desconectado

Mensajes: 162



Ver Perfil Email
« Respuesta #2 en: Junio 19, 2008, 01:50:19 »

Como te desganan cuando te pasas leyendo los codigos de algunos que piden ayuda, te lleva a vesces un buen rato entender porque suelen usar variables completamente ambiguas... tenés que estar descifrando que hace cada una, le pones una posible solución y jamás responden si les funcionó o no... como que desaparecen.. inventen por lo menos que les funcionó aunque no lo hayan probado porque así nadie más va querer ayudar. Es dirente cuando se pide un juego porque al menos parece que no agradecieron y ya... pero descargaron y si ayudas con un código da la sensación de haber perdido el tiempo...  Evil
En línea
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: AYUDA CON PROGRAMA EN C!! « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.7 | SMF © 2006-2007, Simple Machines LLC