Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: EdgarKrieger en 5 Junio 2014, 19:40 pm



Título: duda con struct en funciones
Publicado por: EdgarKrieger en 5 Junio 2014, 19:40 pm
Bueno el problema es que no se utilizar bien las estructuras, el problema del programa es: "Una tienda de autos desea guardar los datos del modelo de 5 autos, crea una estructura y una función leerAuto() que lea los datos del auto y diseñe las funciones que despliegue el auto mas vendido ya sea por marca o modelo o costo"

Ese es el programa que tengo que hacer ya pude hacer la estructura y la función leerAuto pero mi problema es que no tengo la mas mínima idea de como hacer que me despliegue el auto mas vendido, por favor alguien que me ayude.

No pido que me resuelvan el problema solamente que me guíen para poderlo resolver yo,así podre aprender mejor sobre estructuras, me habían dicho que se puede hacer por medio de apuntadores pero la verdad no se

Este es el código que llevo y me corre bien........

Código
  1. //Tienda de autos
  2. #include <stdio.h>
  3. struct autos {
  4.    char modelo[50];
  5.    char marca[50];
  6.    int costo;
  7.    int cantidadVendido;
  8. }DATO;
  9. void leerAuto(struct autos p);
  10. int main()
  11. {
  12.    leerAuto(DATO);
  13.    return 0;
  14. }
  15. void leerAuto (struct autos p)
  16. {
  17.    int i;
  18.    printf("Introduce los datos de 5 automoviles\n");
  19.    for(i=0;i<5;i++){
  20.        printf("Introduce el %d automovil\n",i+1);
  21.        printf("Modelo:\t");
  22.        scanf("%s",p.modelo);
  23.        printf("Marca:\t");
  24.        scanf("%s",p.modelo);
  25.        printf("Costo:\t");
  26.        scanf("%d",&p.costo);
  27.        printf("Cantidad Vendida:\t");
  28.        scanf("%d",&p.cantidadVendido);
  29.    }
  30. }
  31.  


Título: Re: duda con struct en funciones
Publicado por: Blaster en 5 Junio 2014, 21:40 pm
Bueno el problema es que no se utilizar bien las estructuras, el problema del programa es: "Una tienda de autos desea guardar los datos del modelo de 5 autos, crea una estructura y una función leerAuto() que lea los datos del auto y diseñe las funciones que despliegue el auto mas vendido ya sea por marca o modelo o costo"

Lo mejor en estos casos es utilizar un vector de estructuras para guardar la
información individual de cada auto, en la función que propones tu sobreescibes
cada dato anterior con la ingresada despues, el codigo quedaria asi con la
sugerencia que te he dado

Código
  1. #include <stdio.h>
  2.  
  3. typedef struct
  4. {
  5.    char modelo[20];
  6.    char marca[20];
  7.    int costo;
  8.    int cantidadVendido;
  9. }autos;
  10.  
  11. void leerAuto(autos p[]);
  12.  
  13. int main()
  14. {
  15.    autos DATOS[5];
  16.    leerAuto(DATOS);
  17.  
  18.    return 0;
  19. }
  20. void leerAuto(autos p[])
  21. {
  22.    int i;
  23.    printf("Introduce los datos de 5 automoviles\n");
  24.    for(i = 0; i < 5; i++)
  25.    {
  26.        printf("\nIntroduce el %d automovil\n", i+1);
  27.        printf("Modelo:\t");
  28.        scanf("%s", p[i].modelo);
  29.        printf("Marca:\t");
  30.        scanf("%s", p[i].marca);
  31.        printf("Costo:\t");
  32.        scanf("%d", &p[i].costo);
  33.        printf("Cantidad Vendida:\t");
  34.        scanf("%d", &p[i].cantidadVendido);
  35.    }
  36. }

pero mi problema es que no tengo la mas mínima idea de como hacer que me despliegue el auto mas vendido, por favor alguien que me ayude.

Para ese proposito podrias hacer halgo asi, puedes mejorarlo bastante solo es un ejemplo

Código
  1. cant = p[0].cantidadVendido;
  2.    for (i = 0; i < 5; i++){
  3.       if (cant < p[i].cantidadVendido){
  4.         cant = p[i].cantidadVendido;
  5.         pos = i;
  6.       }
  7.    }
  8.    printf("Modelo mas vendido es: %s\t Marca: %s\t Costo: %d",
  9.            p[pos].modelo, p[pos].marca, p[pos].costo);

Saludos


Título: Re: duda con struct en funciones
Publicado por: EdgarKrieger en 6 Junio 2014, 07:16 am
Muchas gracias Blaster  ;-) ;-) ;-) ;-) empezare hacerlo como propones y a probar jejejeje muchas gracias  ;D ;D ;D