SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Cosmos009 en Jueves 19 de Agosto de 2010, 15:18

Título: Variable que no tengo demasiado clara
Publicado por: Cosmos009 en Jueves 19 de Agosto de 2010, 15:18
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#define N 100

enum clase
{
   libro, revista
};
typedef struct
{
   unsigned numref;
   char titulo[30];
   char autor[20];
   char editorial[25];
   enum clase libro_revista;
   union
   {
      struct
      {
         unsigned edicion;
         unsigned anyo;
      }libros;
      char nomrev[30];
   }lr;
}tficha;

void escribir(tficha bibli[], int n);
int leer(tficha bibli[], int n);

main()
{
   static tficha biblioteca[N];
   int n = 0;                      
   system("cls");
   printf("Introducir datos..n"); getch();
   n = leer(biblioteca, N); ------------------------------------------------> se asigna a n el valor entero que devuelve la función leer.Este introducirá los datos contenidos en las diferentes posiciones de la matriz de estructuras,m0,0,m0,1,m0,2,.Este valor será las veces que se repita el bucle while.

   system("cls");
   printf("Listado de libros y revistasn");
   escribir(biblioteca, n);------------------------------------------------->  se pasa a la función escribir, los parámetros biblioteca y n . 'n'  le dirá el numero de datos introducidos haciendo de tope para la  variable 'k' de la función escribir.
}


   int leer(tficha bibli[], int NMAX)
   {
      int clase;
      char resp = 's';
      int k = 0;
      while(tolower(resp) == 's' && k < NMAX)
      {
         system("cls");
         printf("Numero de referencia: ");
         scanf("%u", &bibli[k].numref); fflush(stdin);
         printf("Titulo:               "); gets(bibli[k].titulo);
         printf("Autor:                "); gets(bibli[k].autor);
         printf("Editorial:            "); gets(bibli[k].editorial);
         
         do
         {
            printf("Libro o revista(0 = libro, 1 = revista) ");
            scanf("%d", &clase); fflush(stdin);
         }
         while(clase != 0 && clase != 1);

         if(clase == libro)
         {
            bibli[k].libro_revista = libro;
            printf("Edicion:          ");
            scanf("%u", &bibli[k].lr.libros.edicion);
            printf("Anyo de publi:    ");
            scanf("%u",&bibli[k].lr.libros.anyo);   fflush(stdin);
         }
         else
         {
            bibli[k].libro_revista = revista;
            printf("Nombre revista    ");  gets(bibli[k].lr.nomrev);
         }
         k++;
         do
         {
            printf("nMas datos a introducir (s/n): ");
            resp = getchar();
            fflush(stdin);
         }
         while(tolower(resp) != 's' && tolower(resp) != 'n');
      }
      return k;
   }

   void escribir(tficha bibli[], int n)
   {
      int k = 0;
      for(k = 0; k < n; k++)  
      {
         printf("%d   %sn", bibli[k].numref, bibli[k].titulo);
         printf("%s - Ed.  %sn", bibli[k].autor, bibli[k].editorial);
         switch (bibli[k].libro_revista)
         {
         case libro:
            printf("Edicion %u - anyo %un", bibli[k].lr.libros.edicion,
            bibli[k].lr.libros.anyo);
            break;
         case revista:
            printf("%sn", bibli[k].lr.nomrev);
         }
         printf("Pulse <Entrar> para continuar");
         getchar();
         system("cls");
      }
   }
Título: Re: Variable que no tengo demasiado clara
Publicado por: Cosmos009 en Lunes 30 de Agosto de 2010, 21:48
Bueno ya lo tengo claro simplemente era una variable que contenía el numero de datos introducido.