Código c:
Ver original/*
1-Disponemos de un vector en el que cada posición es una estructura, el vector se denomina clientes,
la estructura de cada posición del vector está constituida por los siguientes campos:
CLIENTE
nombre y apellidos cadena de hasta 30 caracteres
dni cliente cadena de hasta 9 caracteres
facturación entero
Se pide:
a)Realizar una función a la que se pasará el vector y devolverá el dni del cliente con facturación máxima.
b)Realizar una función que escriba por pantalla la facturación máxima y mínima entre todos los clientes
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 3
struct cliente
{
char Nombre[30];
char dni[9];
int fact;
};
/* Nota: Ambas funciones(a)(b) del ejercicio*/
void FactMaxMin(struct cliente registro[])
{
int c, factMIN=0, factMAX=0;
char name_max[30],dni_max[9];
for(c=0;c<N;c++){
if(registro[c].fact >= factMAX){
factMAX=registro[c].fact; /*Maxima facturacion + dni*/
strcpy(dni_max
,registro
[c
].
dni); strcpy(name_max
,registro
[c
].
Nombre); /* +nombre (ver print en aplicacion)*/ }
}
factMIN=factMAX;
for(c=0;c<N;c++){
if(registro[c].fact < factMIN) /* Minima facturacion*/
factMIN=registro[c].fact;
}
printf("Facturacion Maxima entre clientes: %i\nFacturacion Minima entre clientes: %i\n",factMAX
, factMIN
); printf("Cliente com mayor facturacion: [DNI: %s] %s : %i\n\n",dni_max
,name_max
,factMAX
); }
int main(int argc, char *argv[])
{
struct cliente registro[N];
int i;
for(i=0;i<N;i++)
{
printf("\n\tNombre cliente %.2d: ",i
+1); scanf("%s",registro
[i
].
Nombre); printf("\n\tDNI cliente %.2d: ",i
+1); /* Ingresando datos */ scanf("%s",registro
[i
].
dni); printf("\n\tFacturacion cliente %.2d: ",i
+1); scanf("%d",®istro
[i
].
fact); }
FactMaxMin(registro);
return 0;
}
pd: No use punteros.
De nada. : - )