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


 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ordenamieno burbuja
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ordenamieno burbuja  (Leído 375 veces)
sleepy.lito

Desconectado Desconectado

Mensajes: 6


Ver Perfil
ordenamieno burbuja
« en: 12 Diciembre 2018, 23:12 »

Necesito que mi programa ingrese unos datos a una base y las ordene mediante ordenamiento burbuja, el problema es que no me ordena los libros ingresados, si alguien me pudiese señalar donde tenga el error el prgrama porfavor.

Adjunto mi codigo:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <conio.h>
  4.  
  5. #define MAXLIN 80
  6. #define MAXTIT 40
  7. #define MAXAUT 40
  8. #define MAXEDIT 40
  9. #define MAXREV 40
  10.  
  11. #define MAXTXT 100
  12.  
  13. enum {anadir=1, listartodo, listarano, salir};
  14.  
  15.  
  16.  
  17. struct texto {
  18. char titulo[MAXTIT];
  19. char autor[MAXAUT];
  20. char editorial[MAXEDIT];
  21. char revista[MAXREV];
  22. int numref;
  23. int numed;
  24. int auxref;
  25. int anyo;
  26. int clase;
  27. };
  28.  
  29. struct biblioteca {
  30. struct texto txt[MAXTXT];
  31. int cantidad;
  32. };
  33.  
  34. int main (void) {
  35.  
  36. struct biblioteca mistxt;
  37. int opcion, opc, i, j, ano, aux;
  38. char titulo[MAXTIT];
  39. char autor[MAXAUT];
  40. char linea[MAXLIN];
  41.  
  42.     mistxt.cantidad = 0;
  43.  
  44. do{
  45. do{
  46. printf("-------------------------------------\n");
  47. printf("Biblioteca Universidad de Valparaisio\n");
  48. printf("-------------------------------------\n");
  49. printf("1) Anadir Libro/Revista.\n");
  50. printf("2) Listar todos los textos.\n");
  51. printf("3) Listar por ano.\n");
  52. printf("4) Salir.\n");
  53. printf("\n");
  54. printf("Elija una opcion: \n");
  55. gets(linea); sscanf (linea, "%d", &opcion);
  56. if (opcion<1 || opcion>5){
  57. printf("La opcion ingresada es incorrecta, intente otra vez.\n");
  58. }
  59. }   while (opcion <1 || opcion >5);
  60.     printf("\n");
  61. switch (opcion) {
  62. case anadir:
  63. if (mistxt.cantidad == MAXTXT) {
  64. printf("La base de datos esta llena. Lo sentimos.\n");
  65. } else {
  66.  
  67. printf("Ingrese el numero de referencia: \n");
  68. gets(linea); sscanf(linea, "%d", &mistxt.txt[mistxt.cantidad].numref);
  69. mistxt.txt[mistxt.cantidad].auxref = mistxt.txt[mistxt.cantidad].numref;
  70. printf("Ingrese el titulo: \n");
  71. gets(mistxt.txt[mistxt.cantidad].titulo);
  72. printf("Ingrese el autor: \n");
  73. gets(mistxt.txt[mistxt.cantidad].autor);
  74. printf("Ingrese la editorial: \n");
  75. gets(mistxt.txt[mistxt.cantidad].editorial);
  76. printf("Ingrese ano de publicacion: \n");
  77. gets(linea); sscanf(linea, "%d", &mistxt.txt[mistxt.cantidad].anyo);
  78. do{
  79. printf("Ingrese la clase de texto que es: \n1) Libro \n2) Revista\n");
  80. printf("Elija la opcion: 1 o 2\n");
  81. gets(linea); sscanf (linea, "%d", &opc);
  82. if (opc<1 || opc>2){
  83. printf("La opcion ingresada es incorrecta, intente otra vez.\n");
  84. }
  85. } while (opcion <1 || opcion >2);
  86. switch (opc) {
  87.  
  88. case 1:
  89. mistxt.txt[mistxt.cantidad].clase= 1;
  90. printf("Ingrese el numero de edicion: \n");
  91. gets(linea); sscanf(linea, "%d", &mistxt.txt[mistxt.cantidad].numed);
  92. break;
  93.  
  94. case 2:
  95. mistxt.txt[mistxt.cantidad].clase= 2;
  96. printf("Ingrese el nombre de la revista: \n");
  97. gets(mistxt.txt[mistxt.cantidad].revista);
  98. break;
  99. }
  100.  
  101. for(i=0;i<mistxt.cantidad;i++){
  102. for(j=0;j<mistxt.cantidad;j++){
  103. if(mistxt.txt[j].auxref>mistxt.txt[j+1].auxref){
  104. aux = mistxt.txt[j].auxref;
  105. mistxt.txt[j].auxref = mistxt.txt[j+1].auxref;
  106. mistxt.txt[j+1].auxref=aux;
  107. }
  108. }
  109. }
  110. printf("\n\n");
  111. mistxt.cantidad++;
  112. }
  113. break;
  114.  
  115. case listartodo:
  116.  
  117. for (i=0; i<mistxt.cantidad; i++){
  118. printf("---------------------------\n");
  119. printf("%d", i);
  120. printf("Numero de referencia: %d\n", mistxt.txt[i].numref);
  121. printf("Titlulo: %s\n", mistxt.txt[i].titulo);
  122. printf("Autor: %s\n", mistxt.txt[i].autor);
  123. printf("Editorial: %s\n", mistxt.txt[i].editorial);
  124. printf("Año de publicacion; %d\n", mistxt.txt[i].anyo);
  125. if(mistxt.txt[i].clase == 1){
  126. printf("Tipo de texto: Libro\n");
  127. printf("N° de edicion: %d\n", mistxt.txt[i].numed);
  128. }
  129. if(mistxt.txt[i].clase == 2){
  130. printf("Tipo de texto: Revista\n");
  131. printf("Nombre de la revista: %s\n", mistxt.txt[i].revista);
  132. }
  133. printf("---------------------------\n");
  134. }
  135. break;
  136.  
  137. case listarano:
  138. printf("Ingrese el ano a buscar: \n");
  139. scanf("%d", ano);
  140. for (i=0; i<mistxt.cantidad; i++){
  141. if (mistxt.txt[i].anyo==ano){
  142. printf("---------------------------\n");
  143. printf("%d", i);
  144. printf("Numero de referencia: %d\n", mistxt.txt[i].numref);
  145. printf("Titlulo: %s\n", mistxt.txt[i].titulo);
  146. printf("Autor: %s\n", mistxt.txt[i].autor);
  147. printf("Editorial: %s\n", mistxt.txt[i].editorial);
  148. printf("Año de publicacion; %d\n", mistxt.txt[i].anyo);
  149. if(mistxt.txt[i].clase == 1){
  150. printf("Tipo de texto: Libro\n");
  151. printf("N° de edicion: %d\n", mistxt.txt[i].numed);
  152. }
  153. if(mistxt.txt[i].clase == 2){
  154. printf("Tipo de texto: Revista\n");
  155. printf("Nombre de la revista: %s\n", mistxt.txt[i].revista);
  156. }
  157. printf("---------------------------\n");
  158. }
  159. }
  160. break;
  161. }
  162. } while (opcion != salir);
  163. return 0;
  164. }
  165.  


« Última modificación: 13 Diciembre 2018, 15:29 por sleepy.lito » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 799



Ver Perfil
Re: ordenamieno burbuja
« Respuesta #1 en: 13 Diciembre 2018, 00:12 »

El código entre etiquetas GeSHi. Se seleccionan encima del cuadro de texto que aparece cuando escribes un mensaje, donde pone "Código GeSHi".
Después igual podemos ayudarte... :-X


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
CalgaryCorpus


Desconectado Desconectado

Mensajes: 322


Ver Perfil WWW
Re: ordenamieno burbuja
« Respuesta #2 en: 13 Diciembre 2018, 16:41 »

No parece haber codigo que compare y de vuelta libros. Veo un codigo que compara y da vuelta auxref dentro de libros, pero no libros. Siendo asi, los libros no se van a ordenar.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Método Burbuja
Programación C/C++
Lain0x 3 3,600 Último mensaje 1 Mayo 2011, 21:41
por Lain0x
Metodo Burbuja en ASM
ASM
XxArCaNgElxX 7 10,555 Último mensaje 22 Julio 2011, 21:35
por Иōҳ
Ordenación burbuja
Programación C/C++
Runex 1 1,294 Último mensaje 28 Abril 2012, 01:48
por Torino10
La burbuja de internet
Noticias
Mister12 0 695 Último mensaje 15 Agosto 2013, 20:15
por Mister12
Esta vez no estamos ante una burbuja tecnológica, EEUU es una burbuja « 1 2 3 »
Foro Libre
dimitrix 23 4,519 Último mensaje 7 Marzo 2015, 17:04
por dimitrix
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines