• Miércoles 20 de Noviembre de 2024, 10:19

Autor Tema:  Variable que no tengo demasiado clara  (Leído 1042 veces)

Cosmos009

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Variable que no tengo demasiado clara
« en: Jueves 19 de Agosto de 2010, 15:18 »
0
#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");
      }
   }

Cosmos009

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Variable que no tengo demasiado clara
« Respuesta #1 en: Lunes 30 de Agosto de 2010, 21:48 »
0
Bueno ya lo tengo claro simplemente era una variable que contenía el numero de datos introducido.