Ante todo una felicitación a los creadores de este canal. Me han ayudado a entender muchas cosas. En efecto, pude detectar un par de detalles, el primero cuando se llenan los libros no avisa eso es muy simple. La que realmente me puso a pensar es como solucionar el problema de añadir un libro cuando una biblioteca no existe, para ello solo condicione con for(j = 0; j < 1; j++){ aux2 = bi[1].lleno_bi; // dentro de corchetes pongo 1 ya que basta con que una biblioteca este creada para que // se cumpla la condición } y todo el contenido de anadelib a partir del scanf lo condiciono con if(aux2 == 1){ . . . } else{ printf("Debes introducir primero una biblioteca. "); } automáticamente el vuelve a preguntar si deseas realizar si quieres otra operación.
@cucudrulo94718 жыл бұрын
de 400 000 personas que vieron el video 1 ya solo quedamos 12 500 en este XD que facil se rinde la gente, con lo bien explicado que esta
@EmpiezaAProgramar8 жыл бұрын
Lo cierto es que la gente empieza con muchas ganas, pero lo van dejando poco a poco, una pena :(.
@alejoquinones98717 жыл бұрын
con esfuerzo he llegado hasta este video,gracias emilio
@alejo37717 жыл бұрын
en realidad veo que poca gente continua el primer video miles de visitas y ahora menos yo me veré la serie entera pero me tomo mi tiempo para entender solo tengo 14 y aunque no es muy complicado por que tu lo explicas muy bien
@pedrogarciaferrera36717 жыл бұрын
Me vas a decir que ha sido fácil! Y más después del, por otro lado magistral, bloque 6.3! Aquí llegamos la vieja guardia.
@hernianbedac58047 жыл бұрын
tienes razon, lo que pasa es que debe haber algunos en videos anteriores que todavia no llegaron a este nivel. Es decir, uno empieza en el video 1(y continua aprendiendo) generando 1 visita; luego en el video 2 lo vio, genera otra visita, pero llego por ejemplo hasta el bloque 2 y mañana sigue el programa. en este caso la diferencia deberia ser menor. pd igual hay muchisimos que lo dejan.
@ClaudioBOsorio6 жыл бұрын
Que buen video. Ojala nunca le pierdas las ganas ni el amor a lo que haces. Despues de tantos años ayudas a muchos. Siempre le doy Like a tus video por tus muy buenas explicaciones! Sea lo que sea que estas haciendo ahora - el que persevera triunfa- Mucha suerte y feliz 2019
@Juststudy-cc4ow7 ай бұрын
bueno al ser basicamente un refrito del video anterior, logrte entender muchisimo mas de lo que habia entendido el video anterior, bastante bien estructurado el video aunque en si me gustaria que se explicara un poco mas los tipos de estructuras que se deben hacer en estos casos
@josesandoval58798 жыл бұрын
De verdad gracias por realizar estos vídeos se que hace tiempo que los publicaste pero igual me son de utilidad, en este encontré un detalle que al correr el programa y es que si solo he añadido una biblioteca y decido agregar un libro me aparece un menú para elegir a que biblioteca agregarlo con los números 0,1,2 como opciones en 0 la biblioteca que agregue y las que están vacías sin nombre pero igual me permite agregar libros sin haber creado las bibliotecas y consultarlos. por eso se me ocurrió crear una condición en anadelib() en la parte del menú if(bi[i].lleno_bi==1){ ...} para que solo muestre las bibliotecas que se han creado. Excelentes vídeos (y)
@aitorhm95367 жыл бұрын
Algunos habrán pensado que si el libro que se consulta o el autor no están en la biblioteca, ¿Qué pasa? Yo he utilizado un contador el la función consultar, cada vez que se encuentra un libro o un autor el contador aumenta. al final, si no hay libros o autores con ese nombre el contador será igual a cero (o a lo que sea) y con un if podemos mostrar por pantalla que no se ha encontrado nada. Gracias al creador de este contenido y saludos. FUNCIÓN CONSULTAR() : void consulta(){ int op,i,j,aux,contador; char buscar[N]; contador=0; do{ printf("Que quieres buscar nombre del libro o nombre del autor "); printf("(1)Nombre Libro "); printf("(2)Nombre Autor "); scanf("%d",&op); }while(op2); switch(op){ case 1:{ printf("Introduce el nombre del libro: "); fflush(stdin); fgets(buscar,N,stdin); cambio(buscar); for(i=0;i
@andreicharpentierquesada45305 жыл бұрын
Buen video aunque extenso bastante bien explicado, creo que la repeticion prolongada de como acceder a las bibliotecas me dejo bastante claro como utilizar estructuras anidadas, apesar de que no las uso para programar microcontroladores, en algun momento sera muy util. Dejo aqui mi codigo como buen samaritano por si a alguien le sirviese o lo desea comparar: #include #include #define N 50 typedef struct{ char nombre_lib[N]; char autor[N]; int lleno; }libro; typedef struct{ char nombre_bi[N]; libro lib[10]; int lleno_bi; }biblioteca; biblioteca bi[3]; void vacio(); void cambio(char palabra[N]); void anadebi(); void anadelib(); void consulta(); int main(){ int op; char key; vacio(); do{ do{ printf("\tElige una opcion a realizar "); printf("(1) Anadir una nueva biblioteca. "); printf("(2) Anadir un libro a una biblioteca. "); printf("(3) Consultar un libro. "); fflush(stdin); scanf("%i",&op); }while(op3); switch(op){ case 1: anadebi(); break; case 2: anadelib(); break; case 3: consulta(); break; } printf("Quieres realizar alguna otra operacion?"); printf(" \t\t"); fflush(stdin); scanf("%c",&key); }while(key =='S' || key == 's'); return 0; } void vacio(){ int i, j; for(i=0 ; i
@oscarvera90079 жыл бұрын
Este vídeo violó por completo mi cerebro xD
@joselunar9 жыл бұрын
Buenas tardes, Emilio este curso me ha parecedio muy excelente, voy por este video y he aprovechado mucho las explicaciones, ya tenia algo de conocimiento en c pero esto me ha servido de mucho, he agregado algunas cosas a tu codigo y lo comprato para que me des tu opinion: //Realizar un programa para controlar varias bibliotecas usando estructuras dentro de estructuras #include #include #define N 50 typedef struct{ // Tipo estructura para crear un libro nuevo char nombrelib[N]; char autorlib[N]; int liblleno; }libros; typedef struct{ // Tipo estructura para crear una estructura nueva char nombrebib[N]; libros libro[10]; int bibllena; }biblioteca; biblioteca bib[3]; //Función para crear las bibliotecas, en este caso 3 //Prototipos de las funciones void vacio(); void cambio(char texto[N]); void agbiblioteca(); void aglibro(); void agrega(int cont); void consulta(); //Función principal int main(){ int op; char key; vacio(); do{ do{ system("cls"); printf("** ** ** ** Menu Principal ** ** ** "); printf("** ** "); printf("** 1 Agregar una nueva biblioteca. ** "); printf("** 2 Agregar un libro a una biblioteca ** "); printf("** 3 Consultar un libro. ** "); printf("** ** "); printf("** ** ** ** Menu Principal ** ** ** "); printf("Que operacion desea realizar: "); scanf("%i",&op); }while(op < 1 || op > 3); switch(op){ case 1:{ agbiblioteca(); break; } case 2:{ aglibro(); break; } case 3:{ consulta(); break; } } printf(" Quieres realizar alguna operacion mas? (S/N): "); fflush(stdin); scanf("%c",&key); }while(key == 'S' || key == 's'); return 0; } //Función para inicializar las bibliotecas y los libros en cada una de ellas void vacio(){ int i,j; for (i = 0; i < 3; i++){ bib[i].bibllena=0; for (j = 0; j < 10; j++){ bib[i].libro[i].liblleno=0; } } } //Función para cambias los por \0 en los string ingresasdos por teclado y recogidas on fgets void cambio(char texto[N]){ int i; for (i = 0; i < N; i++){ if (texto[i] == ' '){ texto[i] = '\0'; } } } //Función para agregar bibliotecas void agbiblioteca(){ int i,aux; aux=0; for (i=0;i
@adonaygutierrez76794 жыл бұрын
Eres un crak, eres mi idolo, maquina, saludos desde El Slavador
@alejandropereyra4385 жыл бұрын
En el minuto 30:00 , no seria mejor generar una ruta de escape una vez que aux valga 0 en el primer ciclo for ya hacer que salga de ahi el programa??
@elarcademan9 жыл бұрын
hola compañero quiero darte las gracias por este curso desde que empece a programar con javascript y php soy esclavo de mi ordenador XD en el curso de desarrollo de aplicaciones que hice nos dieron una ligera intro de C y el profesor afirmo que conprendiendo la logica y los conceptos basicos de programacion podriamos comprender cualquier lenguage de programacion buscando videos tutoriales o cursos como este que la verdad esta genial te as lucido me encanta C cuando acabe de ver tus videos practicare un tiempo y luego ire a por C++ para pasarme a java que es el que me interesa de verdad El curso que hice estaba enfocado al desarrollo y diseño de paginas web ya saves HTML CSS etc.. y bueno estoy haciendo una web pero la e detenido para salir de el navegador y pulir mas la parte de la programacion.. e tenido un problemilla en este ejemplo (ejercisio) y es que no me muestra el nombre de la biblioteca en los resultados te paso el codigo aver si lo encuentras el compilador no me da errores y se ejecuta perfectamente todo lo demas anterior mente usaba geany en linux pero ya estoy en dev c++ por que tube un problemilla con el depurador de geany muchas gracias por todo un saludo.
@EmpiezaAProgramar9 жыл бұрын
EL ARCADEMAN Lo primero, en vez de estudiar C++ para luego pasarte a Java, hazlo al reves, primero Java (que aqui tienes el curso de iniciacion completo) y luego cuando comprendas los conceptos podras saltar a C++ que es mucho mas complejo si quieres. Sobre tu error en el codigo, pasale el depurador, si el problema no es de compilacion, depurador siempre. Un saludo.
@elarcademan9 жыл бұрын
muchas gracias necesitaba esa orientacion iba a buscar esa comparacion asi que lo mas probable es que empezace por java de todas formas me as ahorado mucho tiempo boy a depurara el programa y ver si doy con el fallo un saludo..
@elarcademan9 жыл бұрын
Eres un maquina esplicando muchas gracias tio
@pablito580710 жыл бұрын
explicas muy muy bien
@charly-ic2dd6 жыл бұрын
una preg mas, para q sirve la ruta de escape en 12:08 porque a lo mejor quisiera poner mas bibliotecas y con la ruta de escape meto solo una y entonces el for como q estaria de mas pues solo haria un ciclo,no??
@elarcademan9 жыл бұрын
hola amigo creias que abia abandonado jejeje nooo es que e estado ocupado con un prllecto de php que me encargaron continuo desde aqui pero pienso repasar todos los ideos nuevamente un saludo
@cesargamboa136 жыл бұрын
/* Esta es mi version del programa, esta ligeramente mejorada y con casi las mismas instrucciones. Espero les sirva. Bloque 06.04: Estructuras de estructuras y ejemplo de gestion de varias bibliotecas Version por: Cesar Gamboa Fecha de creacion: 10/11/18 */ #include #include #define const_LongMax 50 //Prototipos de funciones void func_vaciar_cadena(); void funcAgregaBiblioteca(); void funcAgregaLibro(); void funcConsultaLibro(); void funcCambiarCadena(char cCadena[const_LongMax]); typedef struct{ char nombre_libro[const_LongMax]; char nombre_autor[const_LongMax]; int iLleno_libro; }libro; typedef struct{ char nombre_biblioteca[const_LongMax]; libro li[10]; // Se definen 10 libros maximo por biblioteca int iLleno_biblioteca; }biblioteca; biblioteca bi[3]; //Se definen 3 bibliotecas que es una estructura dentro de una estructura int main(){ system("color 0A"); //Fondo negro y letras verde claro func_vaciar_cadena(); int iOpcion; char cKey; do{ do{ system("cls"); printf(" [ 1 ] Agregar una nueva biblioteca"); printf(" [ 2 ] Agregar un libro a una biblioteca"); printf(" [ 3 ] Consultar un libro"); printf(" [ 4 ] Terminar "); printf(" Su opcion:"); scanf("%i",&iOpcion); }while(iOpcion4); switch(iOpcion){ case 1:{ funcAgregaBiblioteca(); break; } case 2:{ funcAgregaLibro(); break; } case 3:{ funcConsultaLibro(); break; } case 4:{ system("cls"); printf(" Muchas gracias por usar nuestro software. "); //system("pause"); return 0; break; } } }while(iOpcion!=4); } void func_vaciar_cadena(){ //Vacia las estructuras escribiendo 0 en el campo lleno de cada registro int i,j; for(i=0;i
@FranXcoT8 жыл бұрын
En la función consulta, se define aux = 1 para que "no quede en cero" y así no entre al if del otro ciclo for, pero justo antes del if, aux esta definida como una comparación que devuelve (-1, 0 ó 1), de modo que no hacía falta definirla en el anterior ciclo for puesto que no va a quedar siempre en cero.
@angelorellana1117 жыл бұрын
una duda, si en vez de crear una ruta de escape utilizo break, habrá algún problema?
@pablito580710 жыл бұрын
emilio eres idolo
@fran900937 жыл бұрын
¿la funcion vacio siempre vamos a tener que usarla cuando utilicemos vectores de estructuras y estructuras de estructuras?
@agustinlyon81733 жыл бұрын
Excelente video, esto parece tal cual un proyecto de programación que pondrían en mi universidad jeje
@EmpiezaAProgramar3 жыл бұрын
Son ejercicios de primero de mi universidad xD, asi que no vas muy desencaminado.
@agustinlyon81733 жыл бұрын
@@EmpiezaAProgramar Muchas gracias por tus videos , de verdad me estan sirviendo mucho, me ha tocado repetir desgraciadamente la materia de Algoritmos Y Programación 2 por el tema de la memoria dinamica , listas enlazadas y eso... pero contigo esta vez me siento mejor encaminado para aprobar ya que estoy puliendo las bases
@EmpiezaAProgramar3 жыл бұрын
@@agustinlyon8173 Me alegro. Ahora mismo estoy haciendo videos de listas enlazadas en Java y tengo ya hechos de pilas enlazadas y otros tipos de pilas, vamos es una lista de estructuras de datos, te lo pongo aqui por si te interesa: kzbin.info/aero/PLw8RQJQ8K1yTwy6YBA6pHTrpaLzhDUvWI
@agustinlyon81733 жыл бұрын
@@EmpiezaAProgramar Excelente gracias !! Solo hay una cosa y es que en la materia solo vemos C como lenguaje de programación xD :( . Java lo veo es después de esta materia para ver lo que es POO básicamente . Pero igual seguramente los veré llegado el momento , gracias de nuevo por tus aportes 👍🏻🙌🏻
@axelcolamarino27683 жыл бұрын
La verdad que excelente el contenido, solo quería preguntar algo, no entiendo muy bien para que sirve que hagas un bucle for y después le pongas una ruta de escape con aux=0 si después de usar una sola vez el bucle se cambia a aux=1 para salir, es decir, mi duda es porque utilizar un bucle for si solo se hará una repetición?
@carlosven24097 жыл бұрын
Tengo una pregunta, cuando llego a 3 bibliotecas y quiero añadir otra, me tira el printf pero despues me saca del programa automaticamente ¿Por que ?
@EmpiezaAProgramar7 жыл бұрын
Utiliza el depurador y si no te funciona, utiliza otro IDE como Codeblocks. Un saludo.
@hernianbedac58047 жыл бұрын
hola emilio, yo tengo un problema con el depurador, segui todos tus pasos que diste (creo que era a eso del bloque 5 o 4) y añado los vigilantes, esto lo otro y cuando le doy para depurar me dice que tengo que ejecutar el programa, hasta ahi todo correcto... ejecuto el programa y se me crashea, me dice que dejo de responder, y cuando pongo aceptar se me cierra el dev-c++. si tienes alguna idea de que es lo que causa esto lo agradecería. PD ya probre haciendo eso que ponias la linea de codigo en rojo y aun asi no funciona. espero tu respuesta, saludos.
@j.e.c.b56285 жыл бұрын
Hola Emilio, en primer lugar enhorabuena por el curso. Te doy un 10! Tengo un par de preguntas que me surgen desde hace varios vídeos: ¿Existe alguna diferencia importante si uso la sentencia "break" para salir de un bucle en vez de usar una ruta de escape con una variable "aux"? Y otra: ¿Por qué introduces strings con fgets y usas cambio() en vez de scanf("%longitud[^ ]", array)? ¿No es más sencillo? Espero tu respuesta! Muchas gracias por todo!
@melakugarciabonacho2345 жыл бұрын
break solo se puede usar en el switch y usa fgets para poder llenar el array de caracteres y limitar el numero de caracteres que va a coger la funcion de la entrada estandar para evitar asi que escriba sobre posiciones de memoria que no se han reservado para el array. con scanf solo puedes meter los elementos 1 a 1 y es mucho mas tedioso.
@j.e.c.b56285 жыл бұрын
@@melakugarciabonacho234 break solo en un switch? Por qué? Yo lo uso en bucles for y me va divinamente... Me gustaría saber el motivo, tal vez esté incurriendo en un error garrafal que desconozco. Y scanf con el formato que he dado antes: scanf("%longitud[^ ]", array) donde pone longitud pones el numero de caracteres que coge la funcion de entrada, y con [^ ] le estas indicando que siga cogiendo caracteres hasta encontrar un salto de linea, por lo tanto coge espacios. ¿?
@alexiscabvb4 жыл бұрын
Tremendo
@TukaPlay8 жыл бұрын
Emilio, ayuda, pliss, cuando realizo la consulta de la biblioteca que ingrese y el libro que ingrese, buscando por nombre del libro o autor no me sale el nombre de la biblioteca :( #include #include #define N 50 typedef struct{ char nombre_lib[N]; char autor[N]; int lleno_lib; }libro; typedef struct{ char nombre_bi[N]; libro lib[10]; int lleno_bi; }biblioteca; biblioteca bi[3]; void vacio(); void cambio(char palabra[N]); void anadebi(); void anadelib(); void consulta(); int main (){ int op; char key; vacio(); system ("cls"); do{ do{ printf (" Elije que deseas hacer: "); printf (" (1) Anadir una nueva biblioteca. "); printf (" (2) Anadir un libro a una biblioteca. "); printf (" (3) Consultar un libro. "); printf (" Opcion: "); scanf ("%i",&op); }while (op < 1 || op > 3); switch (op){ case 1: { anadebi (); break; } case 2:{ anadelib(); break; } case 3:{ consulta(); break; } } printf (" Introduce si deseas realizar otra operacion: (S/N) "); fflush (stdin); scanf ("%c",&key); system ("cls"); }while (key == 'S' || key == 's' ); system ("pause"); return 0; } void vacio(){ int i,j; for (i = 0; i < 3 ; i++){ bi[i].lleno_bi = 0; for(j = 0; j < 3; j++){ bi[i].lib[j].lleno_lib = 0; } } } void cambio(char palabra[N]){ int i; for (i = 0; i < N; i++){ if (palabra[i] == ' '){ palabra[i] = '\0'; } } } void anadebi(){ int i, aux; aux = 0; for (i = 0; i < 3 && aux == 0; i++){ if (bi[i].lleno_bi == 0){ printf (" Introduce un nombre para la biblioteca: "); fflush (stdin); fgets (bi[i].nombre_bi, N, stdin); cambio(bi[i].nombre_bi); bi[i].lleno_bi = 1; aux = 1; } } if (aux == 0){ printf (" No queda ningun hueco libre para una nueva biblioteca. "); } } void anadelib (){ int i, op, aux; aux = 0; for (i = 0; i < 3 && aux == 0; i++){ if (bi[i].lleno_bi == 1){ printf (" (%i) %s.", i+1, bi[i].nombre_bi); } } printf (" Opcion: "); scanf ("%i",&op); for (i = 0; i < 10 && aux == 0; i++){ if (bi[op].lib[i].lleno_lib == 0){ printf (" Introduce el nombre del libro: "); fflush (stdin); fgets (bi[op].lib[i].nombre_lib, N, stdin); cambio(bi[op].lib[i].nombre_lib); printf (" Introduce el nombre del autor: "); fflush (stdin); fgets (bi[op].lib[i].autor, N, stdin); cambio(bi[op].lib[i].autor); bi[op].lib[i].lleno_lib = 1; aux = 1; } } } void consulta (){ int i, j, op, aux; char buscar[N]; aux = 1; do{ printf (" Buscar: "); printf (" (1) Nombre del Libro "); printf (" (2) Nombre del Autor "); printf (" Opcion: "); scanf ("%i",&op); }while (op < 1 || op > 2); switch (op){ case 1: { printf (" Introduce el nombre del libro: "); fflush (stdin); fgets (buscar, N, stdin); cambio(buscar); for (i = 0; i < 3 ; i++){ aux == 1; for (j = 0; j < 10 ; j++){ aux = strcmp (buscar, bi[i].lib[j].nombre_lib); if (aux == 0){ printf (" El libro %s se encuentra en la biblioteca %s . ", buscar, bi[i].nombre_bi); printf (" El autor del libro es %s. ",bi[i].lib[j].autor); } } } break; } case 2: { printf (" Introduce el nombre del autor: "); fflush (stdin); fgets (buscar, N, stdin); cambio(buscar); for (i = 0; i < 3 ; i++){ aux == 1; for (j = 0; j < 10 ; j++){ aux = strcmp (buscar, bi[i].lib[j].autor); if (aux == 0){ printf (" El libro del autor %s se llama %s y esta en la biblioteca %s . ", buscar, bi[i].lib[j].nombre_lib, bi[i].nombre_bi); } } } break; } } }
@Cecilneff8 жыл бұрын
Una pregunta y si por ejemplo quisieras borrar un libro, como se podria realizar, un libro o un item entero del struct. Muchisimas gracias por tus videos
@javierrioortega62349 жыл бұрын
Tengo una pregunta, por qué en la función añadelib solo introduces una variable ( i ) para recorrer las bibliotecas y los libros con los bucles for, y en la función consulta introduces dos variables ( i , j ), que es lo que yo creo que es lo correcto
@FranXcoT8 жыл бұрын
+Javier Rio Ortega En añadelib no se utilizan dos variables porque sólo se recorren los libros, el numero de la biblioteca en donde se quiere añadir un libro es ingresado por teclado, por lo que no es necesario recorrer las 3. En consulta si se recorren las tres bibliotecas y a su vez los libros de cada una, por eso hacen falta dos variables, una para las bibliotecas y una para los libros :)
@atrodennfifa62314 жыл бұрын
Hola, como estas? No se seguiras atendiendo esto pero tengo un unico problema al compilar. Me dice "undefined reference to WinMain" en una linea en la cual no hay nada. Que puede ser?. Muchisimas gracias por los videos!
@chavakseya9 жыл бұрын
buen video aun ue en partes me perdi y tenia que regresar el video ya que es un programa mas conplejo
@portichuelo26 жыл бұрын
Me sale el programa, pero cuando le doy a la opción 2, la primera vez no sale nada, me hace un salto de línea y no se ejecuta, tengo que volver a poner nuevamente la opción 2 y a la segunda si me sale, ¿por qué?
@luis36648 жыл бұрын
Hola tengo un problema... ejecuto el problema y da error, y hago depuracion y corre normal, cual sera el problema?
@charly-ic2dd6 жыл бұрын
para no usar la funcion cambio no puedes cambiar la funcion fgets por otra?? como gets??
@ogrordg9 жыл бұрын
Hola, en primera medida queria agradecerte lo bien que explicas y la onda que le pones, segui asi. En segundo lugar va la consulta jeje. En el momento de comparar los array de string discrimina la mayusculas de las minusculas; por ejemplo al cargar el nombre del libro El nombre del viento y luego buscamos el nombre del viento. no lo encuentra ¿hay manera de preever esto? o una solucion. Gracias.
@Nicostoc9 жыл бұрын
Si apruebo te lo dedico ;)
@charly-ic2dd6 жыл бұрын
y en 13:20 si aux== 0 seria xq no he ingresado nunca nada con fgets y por lo tanto SI tendria los huecos libres, no entiendo xq dices lo contrario..
@alejoquinones98717 жыл бұрын
¿como puedo depurar en codeblocks?
@EmpiezaAProgramar7 жыл бұрын
Recuerda lo que digo en el video 1.1.1, no preguntes por otros IDEs. Un saludo.
@LionsLite9 жыл бұрын
Ademas el codigo asi simple como esta no es eficiente por que diferencia entre mayusculas y minusculas. y al hacer una busqueda si escribimos el nombre del libro o el autor sin mayusculas no lo encuentra o viceversa (dependiendo de como esta guardado el libro). en el pdf que el dejo el esta una funcion que nos ayuda a solucionar eso :3 me lei todo el pdf y me lo acuerdo xD desde hace 4 cap
@Alan-fu2vx9 жыл бұрын
+LionsLite Hahaha si, viste que bueno que esta terminar un ejercicio y pensar como podrías hacerlo más eficiente y/o entendible? :P
@jeancmarte9 жыл бұрын
Hola amigo, soy estudiante de ingenieria en sistemas y tengo una tarea muy parecida a este algoritmo, para mi seria de gran ayuda que me dijeras como puedo agregar el mismo libro en varias bibliotecas? cuando inserto el mismo libro en distintas bibliotecas al momento de buscar el libro me dice que no esta en la biblioteca. Gracias de ante mano
@EmpiezaAProgramar9 жыл бұрын
Jean Carlos Marte Gomez Para aprender a hacerlo todo por ti mismo estan tooooodos los videos. Un saludo.
@hernianbedac58047 жыл бұрын
fijate que este codigo esta mejor hecho, cuando buscas un libro o autor te da lo que es referido a ese libro o autor, si encuentra 2 libros con el mismo nombre o mismo autor te los imprime(tambien funciona si estan en dif bibliotecas). //Bloque 6.4: Estructuras de Estructuras y Ejemplo de Gestion de varias Bibliotecas #include #include #define N 50 typedef struct{ char nombre_lib[N]; char autor[N]; int lleno_lib; }libro; typedef struct{ char nombre_bi[N]; libro lib[10]; int lleno_bi; }biblioteca; biblioteca bi[3]; void vacio(); void cambio(char palabra[N]); void anadebi(); void anadelib(); void consulta (); void BuscarLibro(); void BuscarAutor(); int main(){ int op; char key; vacio(); do{ do{ printf("Elige una opcion a realizar: "); printf("(1) Anadir una nueva biblioteca. "); printf("(2) Anadir un libro a una biblioteca. "); printf("(3) Consultar un libro. "); scanf("%i",&op); }while(op3); switch(op){ case 1:{ anadebi(); break; } case 2:{ anadelib(); break; } case 3:{ consulta(); break; } } system("pause"); system("cls"); printf("Quieres realizar alguna operacion mas? [S/N]: "); fflush(stdin); scanf("%c",&key); system("cls"); }while(key=='S' || key =='s' || (key!= 'n' && key !='N')); system ("pause"); return 0; } void vacio(){ int i,j; for(i=0;i
@agusratto74369 жыл бұрын
una pregunta, al usar la letra ñ el compilador me tira error, por que me sucede esto ?? desde ya gracias
@EmpiezaAProgramar9 жыл бұрын
+agus ratto Por qué crees tu?
@Alan-fu2vx9 жыл бұрын
+Empieza A Programar aaayy lmao
@carlossantaella1398 жыл бұрын
+Empieza A Programar jajajaj no tienes pasiencia para explicar a quien tiene alguna duda si no la explicas es xq nos mandas a ir a los videos anteriores
@Alan-fu2vx8 жыл бұрын
Carlos Santaella No tiene sentido explicar una duda que se despeja con (literalmente) 0.34 segundos buscando en Google... Ademas, tampoco hay que quedarse con una sola fuente, cualquier programador decente VIVE consultando paginas web como stackexchange, APIs, etc...
@carlossantaella1398 жыл бұрын
mmm no sabia que existian esas pags
@juancarlosrelloso13023 жыл бұрын
Hola el código da error en la linea 52 y ademas está incompleto, podrías pasar el código completo. Muchas gracias
@agustinlyon81733 жыл бұрын
A mi no me da error, que es lo que te sale?
@Guille53819 жыл бұрын
por que no usar la instrucción break simplemente para salir del bucle ?
@gerardocencia8 жыл бұрын
+Guille5381 los break "rompen" con el concepto de programación estructurada, digamos que es más recomendable usar variables de control. Además, si usas el brake es más complicado después saber por qué salió
@UnluckyRos10 жыл бұрын
Después de este pedazo de vídeo no entiendo como solo hay 3 me gusta xD
@EmpiezaAProgramar10 жыл бұрын
Hola! Muchas gracias por tus palabras, la verdad, es que es complicado que la gente le de a "me gusta", pero bueno, todo sea eso! Si te ha gustado este video, ya veras los que vienen mas adelante, en uno hice un sistema de batallas, muy rudimentario, pero que si se amplia se puede aplicar a algun juego :D y en Java tengo en mente muchas mas cosas, pero acepto ideas! Un saludo.
@UnluckyRos10 жыл бұрын
A ese vídeo me tocará llegar en no mucho creo, a mi me gustaría avanzar algo más con las IA, que supongo que son comerse un poquito más la cabeza que con la IA de tu vídeo del tres en raya(que planeo intentar mejorar por mi cuenta) jaja aunque la IA entre en el nivel medio de c o en programación orientada a objetos(no se donde va exactamente), planeo mirarme todo sobre c, java, c++ y programación orientada a objetos por ahora. En cuanto pueda te dejaré una donación aunque tal vez ya a finales de verano que tengo planeado un viaje xD Y si impartes clases online y tengo dinero me tendrás de alumno, no lo dudes! Un saludo!
@xadrianc8 жыл бұрын
Hola! lo primero muchas gracias por el vídeo. he copiado el código tal cual intentando hacerlo por mi parte y revisando unas cuantas veces y creo que lo tengo idéntico a ti pero aún así cuando ejecuto el programa y después de haber añadido libros y bibliotecas cuando intento buscar realiza la búsqueda me imprime el resultado pero se cierra la consola con un error de windows... podríais ayudarme de alguna manera?
@EmpiezaAProgramar8 жыл бұрын
depurador y veras donde esta el error.
@xadrianc8 жыл бұрын
+Empieza A Programar creo que esta después del bucle de búsqueda pero no me lo explico... se cierra igual que cuando falta un aspersan
@egg98805 жыл бұрын
Con opc 1, introducidos tres nombres a la biblioteca, al intentar la 4 da el mensaje pero falla y sale. Si alguien ve el fallo, que avise pf. Gracias #include #include #define N 50 typedef struct{ char nombre_lib[N]; char autor[N]; int lleno_lib; }libro; typedef struct{ char nombre_bi[N]; libro lib[10]; int lleno_bi; }biblioteca; biblioteca bi[2]; void vacio (); void cambio(char palabra[N]); void anadebi(); //void anadelib(); //void consulta(); int main (){ int op; char key; vacio(); do{ do{ printf ("Elige que deseas hacer-> "); printf ("(1) Anadir nueva biblioteca "); printf ("(2) Anadir un libro a una biblioteca "); printf ("(3) Consultar un libro "); scanf("%i", &op); }while (op < 1 || op > 2); switch (op){ case 1: anadebi(); break; case 2: //anadelib(); break; case 3: //consulta(); break; } printf ("Deseas realizar otra operacion? (S/N) "); /*Este mensaje sale bien, pero luego salta a system("pause") No espera la entrada de S ó s*/ scanf("%c", &key); }while(key == 'S' || key == 's'); system ("pause"); return 0; } void vacio (){ int i, j; for (i = 0; i < 2; i++){ bi[i].lleno_bi = 0; for (j = 0; j < 10; j++){ bi[i].lib[j].lleno_lib = 0; } } } void cambio(char palabra[N]){ int i; for (i =0; i < N; i++){ if (palabra[i] == ' '){ palabra[i] = '\0'; } } } void anadebi(){ int i, aux; aux = 0; for (i = 0; i < 2 && aux == 0; i++){ if (bi[i].lleno_bi == 0){ printf ("Introduce un nombre para la biblioteca "); fflush(stdin); fgets(bi[i].nombre_bi, N, stdin); cambio(bi[i].nombre_bi); bi[i].lleno_bi = 1; aux = 1; } } if (aux == 0){ printf("No queda hueco libre para nueva biblioteca "); } }
@EnBuenChileno244 жыл бұрын
Ahi esta el codigo sin agregar nada de mi parte: //Realizar un programa para controlar varia bibliotecas usando estructuras dentro de estructuras. #include #include #define N 50 typedef struct{ char nombre_lib[N]; char autor[N]; int lleno_lib; }libro; typedef struct{ char nombre_bi[N]; libro lib[10]; int lleno_bi; }biblioteca; biblioteca bi[3]; void vacio (); void cambio(char palabra[N]); void anadebi (); void anadelib(); void consulta (); int main(){ int op; char key; vacio(); do{ do{ printf("Elige una opcion a realizar: "); printf("(1) Anadir una nueva biblioteca. "); printf("(2) Anadir un libro a tu coleccion. "); printf("(3) Consultar un libro. "); scanf("%i",&op); }while(op < 1 || op > 3); switch (op){ case 1:{ anadebi(); break; } case 2:{ anadelib(); break; } case 3:{ consulta(); break; } } printf ("Deseas realizar otra operacion: (S/N) "); fflush (stdin); scanf("%c",&key); }while(key == 'S' || key == 's'); system("pause"); return 0; } void vacio (){//Nuestra variable lleno la pone a 0 int i,j; for (i = 0; i < 3; i++){ bi[i].lleno_bi = 0; for (j = 0; j < 10; j++){ bi[i].lib[j].lleno_lib = 0; } } } void cambio (char palabra[N]){ int i; for (i = 0; i < N; i++){ if (palabra[i]== ' '){ palabra[i]= '\0'; } } } void anadebi (){ int i,aux; aux = 0; for (i = 0; i < 3 && aux == 0;i++){ if (bi[i].lleno_bi == 0){ printf ("Introduce un nombre para la biblioteca: "); fflush(stdin); fgets (bi[i].nombre_bi,N,stdin); cambio(bi[i].nombre_bi); bi[i].lleno_bi = 1; aux = 1; } } if (aux == 0){ printf ("No queda ningun hueco libre para una nueva biblioteca. "); } } void anadelib(){ int i,op,aux; aux = 0; for (i = 0;i < 3; i++){ if (bi[i].lleno_bi == 1); printf("(%i) %s. ",i,bi[i].nombre_bi); } scanf("%i",&op); for(i = 0; i < 10 && aux == 0;i++){ if (bi[op].lib[i].lleno_lib == 0){ printf ("Introduce el nombre del libro: "); fflush(stdin); fgets(bi[op].lib[i].nombre_lib,N,stdin); cambio (bi[op].lib[i].nombre_lib); printf ("Introduce el nombre del autor: "); fflush(stdin); fgets(bi[op].lib[i].autor,N,stdin); cambio (bi[op].lib[i].autor); bi[op].lib[i].lleno_lib = 1; aux = 1; } } } void consulta (){ int i,j,op,aux; char buscar[N]; aux = 1; do{ printf ("Que quieres buscar, nombre libro o nombre autor: "); printf ("(1)Nombre libro. "); printf ("(2)Nombre autor. "); scanf ("%i",&op); }while(op < 1 || op > 2); switch(op){ case 1: { printf("Introduce el nombre del libro: "); fflush(stdin); fgets(buscar, N, stdin); cambio(buscar); for (i = 0; i < 3; i++){ aux = 1; for(j = 0;j < 10; j++){ aux = strcmp(buscar,bi[i].lib[j].nombre_lib); if (aux == 0 ){ printf ("El libro %s se encuentra en la biblioteca %s. ",buscar,bi[i].nombre_bi); printf ("El autor del libro es %s. ",bi[i].lib[j].autor); } } } break; } case 2:{ printf("Introduce el nombre del autor: "); fflush(stdin); fgets(buscar, N, stdin); cambio(buscar); for (i = 0; i < 3; i++){ aux = 1; for(j = 0;j < 10; j++){ aux = strcmp(buscar,bi[i].lib[j].autor); if (aux == 0 ){ printf ("El libro %s se encuentra en la biblioteca %s. ",bi[i].lib[j].nombre_lib,bi[i].nombre_bi); } } } break; } } }
@MrManu89610 жыл бұрын
Hola, Emilio, te resultará muy tostón si te envió todo mi código? Le he dado mil vueltas, y no consigo ver el error... Al compilar, y poner el número 1, por ejemplo, me sale "Quieres realizar alguna operacion mas? (S/N)", pero tecleando 2 y 3, también falla. Ayuda! :( //Realizar un programa para controlar varias bibliotecas usando estructuras dentro de estructuras #include #include #define N 50 typedef struct { char nombre_lib[N]; char autor [N]; int lleno_lib; }libro; typedef struct{ char nombre_bi[N]; libro lib[10]; int lleno_bi; }biblioteca; biblioteca bi [3]; void vacio(); void cambio (char palabra [N]); void anadebi(); void anadelib(); void consulta(); int main (){ int op; char key; vacio(); do{ do{ printf("Elige una opcion a realizar: "); printf("(1) Anadir una nueva biblioteca. "); printf("(2) Anadir un libro a una biblioteca. "); printf("(3) Consultar un libro. "); scanf("%i", &op); }while(op3); switch(op){ case 1:{ anadebi(); break;} case 2:{ anadelib(); break;} case 3:{ consulta(); break; } } printf(" ------------- "); printf("Quieres realizar alguna operacion mas? (S/N): "); fflush(stdin); scanf("%c", &key); }while (key == 'S' || key == 's'); system("pause"); return 0; } void vacio(){ int i, j; for(i=0; i
@angelpena77946 жыл бұрын
me pasa lo mismo :/
@elarcademan9 жыл бұрын
#include #include #define N 50 typedef struct{ char nombre_lib[N]; char autor[N]; int lleno_lib; }libro; typedef struct{ char nombre_bi[N]; libro lib[10]; int lleno_bi; }biblioteca; void vacio(); void anadebib(); void anadelib(); void consulta(); void cambio(char palabra[N]); biblioteca bi[3]; int main(){ int op; char key; vacio(); do{ do{ printf("-------------------------------------------------------- "); printf("************* BIENVENIDOS ************ "); printf("-------------------------------------------------------- "); printf("(1) Anadir una nueva biblioteca. "); printf("(2) Anadir un libro a una biblioteca. "); printf("(3) Consultar un libro. "); scanf("%d", &op); }while(op < 1 || op > 3); switch(op){ case 1: anadebib(); break; case 2: anadelib(); break; case 3: consulta(); break; } printf("Desea hacer otra operacion?... (S/N) "); fflush(stdin); scanf("%c", &key); }while(key == 's' || key == 'S'); system("pause"); return 0; } void vacio(){ int i, j; for(i = 0; i < 3; i++){ bi[i].lleno_bi = 0; for(j = 0; j < 10; j++){ bi[i].lib[j].lleno_lib = 0; } } } void anadebib(){ int i, aux; aux = 0; for(i = 0; i < 3 && aux == 0; i++){ if(bi[i].lleno_bi == 0){ printf("Introduzca un nombre para la biblioteca. "); fflush(stdin); fgets(bi[i].nombre_bi, N, stdin); cambio(bi[i].nombre_bi); bi[i].lleno_bi = 1; aux = 1; } }if(aux == 0){ printf("No queda ningun espacio libre. "); } } void anadelib(){ int i, op, aux; aux = 0; for(i = 0; i < 3; i++){ if(bi[i].lleno_bi == 1){ printf("(%d) %s. ", i+1,bi[i].nombre_bi); } }scanf("%d", &op); for(i = 0; i < 10 && aux == 0; i++){ if(bi[op].lib[i].lleno_lib == 0){ printf("Introduzca el nombre del libro: "); fflush(stdin); fgets(bi[op].lib[i].nombre_lib, N, stdin); cambio(bi[op].lib[i].nombre_lib); printf("Introduzca el autor del libro: "); fflush(stdin); fgets(bi[op].lib[i].autor, N, stdin); cambio(bi[op].lib[i].autor); bi[op].lib[i].lleno_lib = 1; aux = 1; } } } void consulta(){ int op, i, j, aux; char buscar[N]; aux = 1; do{ printf("------------------------------------ "); printf("******** BUSCAR ******** "); printf("----------------------------------- "); printf("(1) Buscar nombre de libro. "); printf("(2) Buscar nombre de autor. "); scanf("%d", &op); }while(op < 1 || op > 2); switch(op){ case 1:{ printf("Introduzca el nombre del libro: "); fflush(stdin); fgets(buscar, N, stdin); cambio(buscar); for(i = 0; i < 3; i++){ aux = 1; for(j = 0; j < 10; j++){ aux = strcmp(buscar, bi[i].lib[j].nombre_lib); if(aux == 0){ printf("El libro %s se encuentra en la biblioteca %s. ", buscar, bi[i].nombre_bi); printf("el autor del libro es %s. ", bi[i].lib[j].autor); } } } break; } case 2:{ printf("Introduzca el nombre del autor: "); fflush(stdin); fgets(buscar, N, stdin); cambio(buscar); for(i = 0; i < 3; i++){ aux = 1; for(j = 0; j < 10; j++){ aux = strcmp(buscar, bi[i].lib[j].autor); if(aux == 0){ printf("El libro %s se encuentra en la biblioteca %s. ", bi[i].lib[j].nombre_lib, bi[i].nombre_bi); } } } break; } } } void cambio(char palabra[N]){ int i; for(i = 0; i < N; i++){ if(palabra[i] == ' '){ palabra[i] = '\0'; } } }
@javiercatalan42389 жыл бұрын
Me da un error, no se cual es //Realizar un programa para controlar varias bibliotecas usando estructuras dentro de las estructuras. #include #include #define N 50 typedef struct { char nombre_lib[N]; char autor[N]; int lleno_lib; }libro; typedef struct { char nombre_bi[N]; libro lib[10]; int lleno_bi; }biblioteca; biblioteca bi[3]; void vacio (); void cambio (char palabra[N]); void anadebi (); void anadelib (); int main (){ int op; char key; vacio (); do { do{ printf ("Elige una opcion a realizar: "); printf ("(1) Añadir una nueva biblioteca. "); printf ("(2) Añadir un libro a una biblioteca. "); printf ("(3) Consultar un libro. "); scanf ("%i",&op); }while (op < 1 || op > 3); switch (op) { case 1: { anadebi (); break; } case 2: { anadelib (); break; } case 3: { consulta (); break; } } printf ("Quieres realizar alguna operacion mas? (S/N): "); fflush (stdin); scanf ("%c",&key); }while (key == 's' || key == 's'); system ("pause"); return 0; } void vacio () { int i, j; for (i = 0; i < 3; i++) { bi[i].lleno_bi = 0; for (j = 0; j < 10; j++) { bi[i].lib[j].lleno_lib = 0; } } } void cambio (char palabra[N]) { int i; for (i = 0; i < N; i++) { if (palabra[i] == ' ') { palabra[i] = '\0'; } } } void anadebi () { int i, aux; aux = 0; for (i = 0; i < 3 && aux == 0; i++) { if (bi[i].lleno_bi == 0) { printf ("Introduce un nombre para la biblioteca: "); fflush (stdin); fgets (bi[i].nombre_bi, N, stdin); cambio (bi[i].nombre_bi); bi[i].lleno_bo = 1; aux = 1; } } if (aux == 0) { printf ("No queda ningun hueco libre para nueva biblioteca. "); } } void anadelib () { int i, op, aux; aux = 0; for (i = 0; i < 3; i++) { if (bi[i].lleno_bi == 1) { printf ("(%i) %s. ",i, bi[i].nombre_bi); } } scanf ("%i",&op); for (i = 0; i < 10 && aux == 0; i++) { if (bi[op].lib[i].lleno_lib == 0) { printf ("Introduce el nombre del libro: "); fflush (stdin); fgets (bi[op].lib[i].nombre_lib, N, stdin); cambio (bi[op].lib[i].nombre_lib); printf ("Introduce el nombre del autor: "); fflush (stdin); fgets (bi[op].lib[i].autor, N, stdin); cambio (bi[op].lib[i].autor); bi[op].lib[i].lleno_lib = 1; aux = 1; } } } void consulta () { int op, i, j, aux; char buscar[N]; aux = 1; do { printf ("Que quieres buscar, nombre libro o nombre autor: "); printf ("(1) Nombre Libro. "); printf ("(2) Nombre Autor. "); scanf ("%i",&op); }while (op < 1 || op > 2); switch (op) { case 1: { printf ("Introduce el nombre del Libro: "); fflush (stdin); fgets (buscar, N, stdin); cambio (buscar); for (i = 0; i < 3; i++) { aux = 1; for (j = 0; i < 10; j++) { aux = strcmp (buscar, bi[i).lib[j].nombre_lib); if (aux == 0) { printf ("El libro %s se encuentra en la biblioteca %s. ",buscar, bi[i].nombre_bi); printf ("El autor del libro es %s. ",bi[i].lib[j].autor); } } } break; } case 2: { printf ("Introduce el nombre del Libro: "); fflush (stdin); fgets (buscar, N, stdin); cambio (buscar); for (i = 0; i < 3; i++) { aux = 1; for (j = 0; i < 10; j++) { aux = strcmp (buscar, bi[i).lib[j].autor); if (aux == 0) { printf ("El libro %s se encuentra en la biblioteca %s. ",bi[i].lib[j].nombre_lib, bi[i].nombre_bi); printf ("El autor del libro es %s. ",bi[i].lib[j].autor); } } } break; } } }
@javiercatalan42389 жыл бұрын
El problema esta en la linea 96
@EmpiezaAProgramar9 жыл бұрын
Javier Catalán kzbin.info/www/bejne/eorHe4mklNBsn5o
@Facuatolosa8 жыл бұрын
Antes que nada muchas gracias por el video; si alguien ve este comentario me gustaría que me dijesen cual es el error en mi código ya que lo he copiado tal cual y me arroja los siguientes errores: - Linea 93. [Warning] passing argument 1 of 'fgets' makes pointer from integer without a cast. - Linea 94. [Note] expected 'char * __restrict__' but argument is of type 'int'. - Linea 76. [Note] expected 'char *' but argument is of type 'int'. CÓDIGO EN C. #include #include #include #define N 50 typedef struct { char nombre_lib[N]; char autor[N]; int lleno_lib; } libro; typedef struct { char nombre_bi[N]; libro lib[10]; int lleno_bi; } biblioteca; biblioteca bi[3]; void vacio(); void cambio(char palabra[N]); void anadebi(); void anadelib(); void consulta(); int main(){ int op; char key; vacio(); do{ do{ printf("Elige una opcion a realizar: "); printf("(1) Añadir una nueva biblioteca. "); printf("(2) Añadir un libro a una biblioteca. "); printf("(3) Consultar un libro. "); scanf("%i",&op); }while(op < 1 || op > 3); switch(op){ case 1:{ anadebi(); break; } case 2:{ anadelib(); break; } case 3:{ consulta(); break; } } printf("Quieres realizar alguna operacion mas? (S/N): "); fflush(stdin); scanf("%c",&key); }while(key == 'S' || key == 's'); system ("pause"); return 0; } void vacio(){ int i,j; for (i = 0; i < 3; i++){ bi[i].lleno_bi = 0; for (j = 0; j < 10; j++){ bi[i].lib[j].lleno_lib = 0; } } } void cambio(char palabra[N]){ int i; for (i = 0; i < N; i++){ if (palabra[i] == ' '){ palabra[i] = '\0'; } } } void anadebi(){ int i, aux=0; for (i=0 ; i
@carlossantaella1398 жыл бұрын
que locura!! jajaja
@luischamo3607 жыл бұрын
Hola buenas tengo un problema, al momento de ejecutar y cuando se abre la consola, se queda un rato pensando y despues dice que el archivo .exe a dejado de funcionar. Aqui les dejo mi codigo: //Realizar un pograma para controlar varias bibliotecas usando estructuras dentro de estructuras #include #include #define N 50 typedef struct{ char nombre_lib[N]; char autor[N]; int lleno_lib; }libro; typedef struct{ char nombre_bi[N]; libro lib[10]; int lleno_bi; }biblioteca; biblioteca bi[3]; void vacio(); void cambio(char palabra[N]); void anadebi(); void anadelib(); void consulta(); int main(){ int op; char key; vacio(); do{ do{ printf("Elige una opcion a realizar: "); printf("(1) Anadir una nueva biblioteca. "); printf("(2) Anadir un libro a una biblioteca. "); printf("(3) Consultar un libro. "); scanf("%i", &op); }while (op < 1 || op > 3); switch(op){ case 1: anadebi(); break; case 2: anadelib(); break; case 3: consulta(); break; } printf("Quieres realizar alguna operacion mas? (S/N): "); scanf("%c",&key); }while(key == 'S' || key == 's'); system("pause"); return 0; } void vacio(){ int i,j; for (i = 0; i < N; i++){ bi[i].lleno_bi = 0; for (j = 0; j < 10; j++){ bi[i].lib[i].lleno_lib = 0; } } } void cambio(char palabra[N]){ int i; for (i == 0; i < N; i++){ if (palabra[i] == ' '){ palabra[i] = '\0'; } } } void anadebi(){ int i, aux; aux = 0; for(i = 0; i < 3 && aux == 0; i++){ if (bi[i].lleno_bi == 0){ printf("Introduce un nombre para la biblioteca: "); fflush(stdin); fgets(bi[i].nombre_bi, N, stdin); cambio(bi[i].nombre_bi); bi[i].lleno_bi = 1; aux = 1; } } if (aux == 0){ printf("No queda ningun hueco libro para una nueva biblioteca. "); } } void anadelib(){ int i, op, aux; aux = 0; for(i = 0; i < 3; i++){ if(bi[i].lleno_bi == 1){ printf("(%i) %s. ",i,bi[i].nombre_bi); } } scanf("%i",&op); for (i = 0; i < 10 && aux ==0 ; i++){ if(bi[op].lib[i].lleno_lib == 0){ printf("Introduce el mnombre del libro: "); fflush(stdin); fgets(bi[op].lib[i].nombre_lib, N, stdin); cambio(bi[op].lib[i].nombre_lib); printf("Introduce el mnombre del Autor: "); fflush(stdin); fgets(bi[op].lib[i].autor, N, stdin); cambio(bi[op].lib[i].autor); bi[i].lib[i].lleno_lib = 1; aux = 1; } } } void consulta(){ int op, i, j, aux ; char buscar[N]; aux = 1; do { printf("Que quieres buscar, nombre lirbo o nombre autor: "); printf("(1) Nombre Libro. )"); printf("(2) Nombre Autor. "); scanf("%i", &op); }while(op < 1 || op > 2); switch (op){ case 1: { printf("Introduce el nombre del libro: "); fflush(stdin); fgets(buscar, N, stdin); cambio(buscar); for ( i = 0; i < 3; i++){ aux = 1; for(j = 0; j < 10; j++){ aux = strcmp(buscar, bi[i].lib[j].nombre_lib); if (aux == 0){ printf("El libro %s se encuentra en la biblioteca %s. ", buscar,bi[i].nombre_bi); printf("el Autor del libro es %s. ",bi[i].lib[j].autor); } } } break; } case 2: { printf("Introduce el nombre del autor: "); fflush(stdin); fgets(buscar, N, stdin); cambio(buscar); for ( i = 0; i < 3; i++){ aux = 1; for(j = 0; j < 10; j++){ aux = strcmp(buscar, bi[i].lib[j].autor); if (aux == 0){ printf("El libro %s se encuentra en la biblioteca %s. ", bi[i].lib[j].nombre_lib, bi[i].nombre_bi); } } } break; } } }
@EmpiezaAProgramar7 жыл бұрын
Para este tipo de cosas, el depurador siempre es la solucion! Un saludo.
@robertoccg18 жыл бұрын
+Empieza a Programar no he podido solucionar este ejercicio: /*27.- Se dispone de la información relativa a 100 estaciones meteorológicas diferentes repartidas por una determinada área geográfica. Conocemos el nombre de las estaciones y la cantidad de lluvia en litros/m2 que recogieron durante el año pasado en cada uno de los 12 meses. Implementa la estructura adecuada para almacenar dicha información. Realiza las funciones necesarias para determinar en qué punto llovió más y en cual menos y la cantidad media de agua recogida en las estaciones meteorológicas durante cada mes*/ Todo esta perfecto pero me trabo cuando tengo que realizar el promedio para saber donde llovio mas, cosa obvia parece pero me trabe espero alguien me ayude
@andresmonje68657 жыл бұрын
Joder me acabo de dar cuenta que eres de mi misma universidad ajajaj. Encontraste trabajo?