Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/09/2010, 19:33
logic_tristaN
 
Fecha de Ingreso: septiembre-2010
Mensajes: 16
Antigüedad: 14 años, 4 meses
Puntos: 0
Mensaje Respuesta: Ayuda con este ejercicio

Código c:
Ver original
  1. /*
  2. 1-Disponemos de un vector en el que cada posición es una estructura, el vector se denomina clientes,
  3. la estructura de cada posición del vector está constituida por los siguientes campos:
  4. CLIENTE
  5. nombre y apellidos cadena de hasta 30 caracteres
  6. dni cliente cadena de hasta 9 caracteres
  7. facturación entero
  8.  
  9. Se pide:
  10. a)Realizar una función a la que se pasará el vector y devolverá el dni del cliente con facturación máxima.
  11. b)Realizar una función que escriba por pantalla la facturación máxima y mínima entre todos los clientes
  12. */
  13. #include <stdio.h>
  14. #include <stdlib.h>
  15. #include <string.h>
  16. #define N 3
  17. struct cliente
  18.     {
  19.         char Nombre[30];
  20.         char dni[9];
  21.         int fact;
  22.     };
  23. /* Nota: Ambas funciones(a)(b) del ejercicio*/
  24. void FactMaxMin(struct cliente registro[])
  25.     {
  26.         int c, factMIN=0, factMAX=0;
  27.         char name_max[30],dni_max[9];
  28.         for(c=0;c<N;c++){
  29.             if(registro[c].fact >= factMAX){
  30.                 factMAX=registro[c].fact;           /*Maxima facturacion + dni*/
  31.                 strcpy(dni_max,registro[c].dni);
  32.                 strcpy(name_max,registro[c].Nombre); /* +nombre (ver print en aplicacion)*/
  33.             }
  34.         }
  35.         factMIN=factMAX;
  36.         for(c=0;c<N;c++){
  37.             if(registro[c].fact < factMIN)      /* Minima facturacion*/
  38.                 factMIN=registro[c].fact;
  39.             }
  40.     printf("Facturacion Maxima entre clientes: %i\nFacturacion Minima entre clientes: %i\n",factMAX, factMIN);
  41.     printf("Cliente com mayor facturacion: [DNI: %s] %s : %i\n\n",dni_max,name_max,factMAX);
  42. }  
  43.  
  44. int main(int argc, char *argv[])
  45.     {
  46.     struct cliente registro[N];
  47.         int i;
  48.         for(i=0;i<N;i++)
  49.         {
  50.             printf("\n\tNombre cliente %.2d: ",i+1);
  51.             scanf("%s",registro[i].Nombre);
  52.             printf("\n\tDNI cliente %.2d: ",i+1);       /* Ingresando datos */
  53.             scanf("%s",registro[i].dni);
  54.             printf("\n\tFacturacion cliente %.2d: ",i+1);
  55.             scanf("%d",&registro[i].fact);
  56.         }
  57.         FactMaxMin(registro);
  58.     system("PAUSE");
  59. return 0;
  60. }

pd: No use punteros.
De nada. : - )

Última edición por logic_tristaN; 01/09/2010 a las 19:49 Razón: codigo