Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/11/2012, 20:02
Avatar de cotolon
cotolon
 
Fecha de Ingreso: octubre-2012
Mensajes: 55
Antigüedad: 11 años, 6 meses
Puntos: 10
Respuesta: Problema con estructura

Extraño que no te haya compilado, con respecto a la declaración de la estructura se refería a declarar la estructura "c1" dentro de main, de está forma:

Código C++:
Ver original
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6.  
  7. using namespace std;
  8.  
  9. struct clientes
  10.     {
  11.         char nombre [50];
  12.         int numero_unidades;
  13.         float precio;
  14.         char estado; //p: pagado, m: moroso, a: atrasado
  15.     }; //<- Aqui ya no esta c1
  16.  
  17.  
  18. clientes leer_clientes (clientes c1) //Retornas un datos tipo cliente
  19. {
  20.     cout<<"Introduzca el nombre del cliente: ";
  21.     cin.getline(c1.nombre, 50);
  22.     cout<<"Introduzca el numero de unidades: ";
  23.     cin>>c1.numero_unidades;
  24.     cout<<"Introduzca el precio: ";
  25.     cin>>c1.precio;
  26.     cout<<"Introduzca el estado (p: pagado, m: moroso, a: atrasado): ";
  27.     cin>>c1.estado;
  28.     return c1; //regresamos los datos del cliente
  29. }
  30. void escribe_clientes (clientes c1)
  31. {
  32.      cout <<"Nombre del cliente: "<<c1.nombre<<endl;
  33.      cout <<"Numero de unidades: "<<c1.numero_unidades<<endl;
  34.      cout <<"Precio: "<<c1.precio<<" €"<<endl;
  35.      cout <<"Estado: ";
  36.      switch (c1.estado)
  37.        {
  38.         case 'p': cout <<"pagado"; break;
  39.         case 'm': cout <<"moroso"; break;
  40.         case 'a': cout <<"atrasado"; break;
  41.        }
  42.      cout<<endl;
  43. }
  44.  
  45. int main()
  46. {
  47.      //Declaramos la estructura c1
  48.      struct clientes c1;    
  49.  
  50.      c1 = leer_clientes(c1); //<- Forma por Valor sin puntero
  51.      escribe_clientes (c1);
  52.  
  53.  
  54.     system("PAUSE");
  55.     return EXIT_SUCCESS;
  56.  
  57. }