Buenas amigos,
Llevaba tiempo sin programar y sin postear nada, hasta que el otro dia vino un amigo mio para que le echar a una mano con unos ejercicios de c, uno de ellos me estuvo rayando la cabeza bastante, y lal final lo deje por imposible. Espero que me puedan echar una mano con el. Os dejo el enunciado el codigo que tengo implementado y donde me da el error (no se si es porq me falta alguna libreria cosa que dudo o nose... el caso es q esty desesperado) Un saludo a todos
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>
#define N 3
struct cliente
{
char Nombre[30];
char dni[9];
int fact;
};
typedef struct cliente Clien;
void FactMax(Clien vect[]);
int main(int argc, char *argv[])
{
int i;
Clien Clientes[N];
for(i=0;i<N;i++)//Pido los dato y los recojo con scanf
{
printf("\n\tNombre cliente %.2d:",i+1);
scanf("%s",&Clientes[i].Nombre);
printf("\n\tDNI cliente %.2d:",i+1);
scanf("%s",&Clientes[i].dni);
printf("\n\tFacturacion cliente %.2d:",i+1);
scanf("%d",&Clientes[i].fact);
}
FactMax(Clientes);
/*for(i=0;i<=N;i++)//Para ver que me guarda bien los datos
{
printf("\n\tNombre:%s",Clientes[i].Nombre);
printf("\n\tDNI cliente %s",Clientes[i].dni);
printf("\n\tfacturacion cliente %d",Clientes[i].fact);
}*/
system("PAUSE");
return 0;
}
//******************EN ESTA FUNCION PETA**********************
//He depurado el código linea a linea y falla aquí, justo en la linea (int)vect[c].fact=(int)vect[c+1].fact;
void FactMax(Clien vect[])
{
int c, aux=0;
for(c=0;c<=N;c++)
{
if(vect[c].fact<vect[c+1].fact) {
aux=vect[c].fact;
(int)vect[c].fact=(int)vect[c+1].fact;
(int)vect[c+1].fact=aux;
}
}
printf("FATURACION MAXIMA:%s",vect[0].fact);
}
UN SALUDO Y ESPERO VUESTRA AYUDA GRACIAS!!!