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 ttwitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema al leer/mostrar lista simplemente enlazada en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al leer/mostrar lista simplemente enlazada en C  (Leído 1,038 veces)
Chamit Jabes

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Problema al leer/mostrar lista simplemente enlazada en C
« en: 9 Abril 2017, 13:30 pm »

Bueno chicos ocurre que al momento de querer mostrar la lista, el unico dato correcto es el ultimo int del struct de datos (int horac)

Quisiera saber que estoy haciendo mal. De antemano muchas gracias.

CODIGO:

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. //Se tiene una lista simplemente enalzada que representa los canales de televisio de un cable operador. Se maneja el nombre de cada
  6. //canal, el tipo de canal, el n° asignado y la cantidad de horas en comerciales que permite. Se solicita:
  7. //A) Declare los struct a ser utilizados
  8. //B) Determine el promedio de comerciales que emiten los canales de television
  9. //C) Agregar un nuevo Canal
  10. //D) Eliminar el o los canales que emiten mayor cantidad de horas en comerciales, debe mostrar por pantalla el detalle de los canales eliminados
  11.  
  12. struct nodoCanales
  13. {
  14. struct DatosCanal *canal;
  15. struct nodoCanales *sig;
  16. };
  17.  
  18. struct DatosCanal
  19. {
  20. char nombre;
  21. char tipo
  22. int numero;
  23. int horac;
  24. };
  25.  
  26. struct nodoCanales *crear();
  27. void enlazarCanal(struct nodoCanales **, struct nodoCanales *);
  28. void mostrarCanal(struct nodoCanales *);
  29.  
  30. int main()
  31. {
  32. int i=0;
  33.  
  34. struct nodoCanales *lista = NULL;
  35. struct nodoCanales *aux = NULL;
  36.  
  37. for(i=0;i<1;i++)
  38. {
  39. enlazarCanal(&lista,crear());
  40. }
  41.  
  42. aux=lista;
  43.  
  44. while(aux)
  45. {
  46. mostrarCanal(aux);
  47. aux=aux->sig;
  48. }
  49.  
  50. return 0;
  51. }
  52.  
  53. struct nodoCanales *crear()
  54. {
  55. char buffer[50];
  56. int size=0;
  57.  
  58. struct nodoCanales *nuevo;
  59.  
  60. nuevo=(struct nodoCanales *)malloc(sizeof(struct nodoCanales));
  61.  
  62. printf("Ingrese el nombre del canal: \n");
  63. scanf(" %[^\n]",buffer);
  64. size=strlen(buffer);
  65. nuevo->canal->nombre=(char*)malloc(size*sizeof(char));
  66. strcpy(nuevo->canal->nombre,buffer);
  67.  
  68. printf("Ingrese el tipo de canal: \n");
  69. scanf(" %[^\n]",buffer);
  70. size=strlen(buffer);
  71. nuevo->canal->tipo=(char*)malloc(size*sizeof(char));
  72. strcpy(nuevo->canal->tipo,buffer);
  73.  
  74. printf("Ingrese el numero del canal: \n");
  75. scanf("%d",&nuevo->canal->numero);
  76.  
  77. printf("Ingrese la cantidad de horas en comerciales del canal: \n");
  78. scanf("%d",&nuevo->canal->horac);
  79.  
  80. nuevo->sig=NULL;
  81.  
  82. return nuevo;
  83. }
  84.  
  85. void enlazarCanal(struct nodoCanales **head, struct nodoCanales *nuevo)
  86. {
  87. struct nodoCanales *rec = *head;
  88.  
  89. if(!(*head))
  90. {
  91. *head = nuevo;
  92. }
  93.  
  94. else
  95. {
  96. while(rec)
  97. {
  98. if(!(rec->sig))
  99. {
  100. rec->sig = nuevo;
  101. rec = nuevo;
  102. }
  103. rec = rec->sig;
  104. }
  105. }
  106. }
  107.  
  108. void mostrarCanal(struct nodoCanales *nodo)
  109. {
  110. printf("%c \n",nodo->canal->nombre);
  111. printf("%c \n",nodo->canal->tipo);
  112. printf("%d \n",nodo->canal->numero);
  113. printf("%d \n",nodo->canal->horac);
  114. }
  115.  
  116.  


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex


« Última modificación: 9 Abril 2017, 14:29 pm por engel lex » En línea

Chamit Jabes

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Problema al leer/mostrar lista simplemente enlazada en C
« Respuesta #1 en: 10 Abril 2017, 01:57 am »

Cerrar ya logre arreglarlo :)


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Lista Simplemente enlazada ayuda
Programación C/C++
Cpp 1 1,237 Último mensaje 11 Diciembre 2014, 07:29 am
por eferion
Borrar nodo en lista simplemente enlazada[C]
Programación C/C++
NOB2014 4 5,043 Último mensaje 28 Julio 2016, 14:22 pm
por NOB2014
Borrar ultimo nodo lista simplemente enlazada
Programación C/C++
robertoesimez 5 3,371 Último mensaje 23 Marzo 2017, 07:22 am
por MAFUS
Problema con una lista simplemente enlazada en C++
Programación C/C++
Mike_EDD 1 1,307 Último mensaje 4 Septiembre 2017, 22:24 pm
por ivancea96
Se puede imprimir lista simplemente enlazada al reves
Programación C/C++
dacima99 4 5,357 Último mensaje 22 Marzo 2018, 23:25 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines