Adjunto mi codigo:
Código
#include <stdio.h> #include <string.h> #include <conio.h> #define MAXLIN 80 #define MAXTIT 40 #define MAXAUT 40 #define MAXEDIT 40 #define MAXREV 40 #define MAXTXT 100 enum {anadir=1, listartodo, listarano, salir}; struct texto { char titulo[MAXTIT]; char autor[MAXAUT]; char editorial[MAXEDIT]; char revista[MAXREV]; int numref; int numed; int auxref; int anyo; int clase; }; struct biblioteca { struct texto txt[MAXTXT]; int cantidad; }; int main (void) { struct biblioteca mistxt; int opcion, opc, i, j, ano, aux; char titulo[MAXTIT]; char autor[MAXAUT]; char linea[MAXLIN]; mistxt.cantidad = 0; do{ do{ if (opcion<1 || opcion>5){ } } while (opcion <1 || opcion >5); switch (opcion) { case anadir: if (mistxt.cantidad == MAXTXT) { } else { mistxt.txt[mistxt.cantidad].auxref = mistxt.txt[mistxt.cantidad].numref; do{ if (opc<1 || opc>2){ } } while (opcion <1 || opcion >2); switch (opc) { case 1: mistxt.txt[mistxt.cantidad].clase= 1; break; case 2: mistxt.txt[mistxt.cantidad].clase= 2; break; } for(i=0;i<mistxt.cantidad;i++){ for(j=0;j<mistxt.cantidad;j++){ if(mistxt.txt[j].auxref>mistxt.txt[j+1].auxref){ aux = mistxt.txt[j].auxref; mistxt.txt[j].auxref = mistxt.txt[j+1].auxref; mistxt.txt[j+1].auxref=aux; } } } mistxt.cantidad++; } break; case listartodo: for (i=0; i<mistxt.cantidad; i++){ if(mistxt.txt[i].clase == 1){ } if(mistxt.txt[i].clase == 2){ } } break; case listarano: for (i=0; i<mistxt.cantidad; i++){ if (mistxt.txt[i].anyo==ano){ if(mistxt.txt[i].clase == 1){ } if(mistxt.txt[i].clase == 2){ } } } break; } } while (opcion != salir); return 0; }