Necesito ayuda estoy haciendo un programa en lenguaje C en dev++ y ejecuto todo bien ingreso el libros y todo lo que me pide pero luego cunado pongo en mostrar libros no me funciona hay un error y no cacho cual es :/ asi es el programa ayuda porfa #include <stdio.h> #include <conio.h> int op,x,i,salir; void menu(); void buscar_libro(); void Eliminar_libro(); void Modificar_libro(); void Mostrar_libro(); void Ingresar_libro(); void menu() { printf ("menu \n"); printf ("1.buscar\n"); printf ("2.eliminar\n"); printf ("3.modificar\n"); printf ("4.mostrar todos\n"); printf ("5.Agregar Libro\n"); printf ("6.Salir\n"); scanf ("%d",&op); switch (op){ case 1: printf("ingrese id a buscar"); scanf("%d",&x); buscar_libro(x); case 2: printf("ingrese id a eliminar"); scanf("%d", &x); Eliminar_libro(x); break; case 3: printf("ingresar id a modificar"); scanf("%d",&x); Modificar_libro(x); break; case 4: Mostrar_libro(); break; case 5: Ingresar_libro(); break; case 6: salir = 0; break; default: printf("opcion invalida \n"); break; } } struct libro { char nombre[10]; char autor [10]; int paginas; int cantidad; int id; int act; }sistema[1000]; int cantidad_libros = 0; void Ingresar_libro () { int i,cont=0; for(i=0;i<1000;i++) { if (sistema.id==0) { cont++ ; } } cantidad_libros=cont; printf ("Ingresar nombre del libro\n"); scanf (" %[^\n]",&sistema[cantidad_libros].nombre); printf ("ingrese autor del libro\n"); scanf (" %[^\n]",&sistema[cantidad_libros].autor); printf ("ingrese cantidad de paginas\n"); scanf (" %d",&sistema[cantidad_libros].paginas); printf ("ingrese cantidad de libros\n"); scanf (" %d",&sistema[cantidad_libros].cantidad); sistema[cantidad_libros].id = cantidad_libros+1; sistema[cantidad_libros].act=1; system("cls"); getch(); menu(); } void Eliminar_libro(int id) { int i; for (i=0; i<cantidad_libros; i++) { if(sistema.id==id){ sistema.act=0; printf ("El Libro esta elimnado"); } } } void Modificar_libro(int id) { int i; for (i=0;i < cantidad_libros;i++) { if(sistema.id==id){ printf ("Ingresar nombre del libro \n"); scanf (" %[^\n]",&sistema.nombre); printf ("ingrese autor del libro"); scanf (" %[^\n]",&sistema.autor); printf ("ingrese cantidad de paginas"); scanf (" %d",&sistema.paginas); printf ("ingrese cantidad de libros"); scanf (" %d",&sistema.cantidad); } } } void buscar_libro(int id) { int i; int op; op=0; for (i=0;i < cantidad_libros;i++) { if(sistema.id==id){ printf("id %d \n",sistema.id ); printf("nombre %s \n",sistema.nombre); printf("autor %s \n",sistema.autor); printf("paginas %d \n",sistema.paginas ); printf(" cantidad %d \n",sistema.cantidad ); op=1; break; } } if(op==0){ printf("El libro no existe \n"); } } void Mostrar_libro() { int i; for (i=0;i<10;i++) { if(sistema.act=1){ printf("id %d \n",sistema.id); printf("nombre %s",sistema.nombre); printf("autor %s",sistema.autor); printf("paginas %d \n",sistema.paginas); printf(" cantidad %d \n",sistema.cantidad); } } } int main (){ salir=1; do{ menu(); }while(salir); return 0; getch(); }
En C++ a menudo suceden errores de la nada, es cosas de acostumbrarse nomás o encontrar algún hack xD. Saludos.
revisa las variables donde guardas los datos... cada vez que guardes, edites o elimines...tira para afuera los datos y revisa si van tal cual tu quieres... saludos!