InicioHazlo Tu MismoModelo de programa en C

Nro de vehiculo
km de salida
km de llegada

la tarifa es de $6.25 el kilometro

se pide procesar la informacion de lo viajes realizados e informar:

1. mayor cantidad de kilometros recorridos en un viaje
2. total de km recorrido por cada vehiculo
3. numero de vehiculo con mayor cantidad de km recorridos
4. Mostrar ordenado por cantidad de viajes realizados

nro vehiculo,
cant viajes,
total de kilometros recorridos,
total facturado

*/

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

/*si no les funciona el parar, es por el compilador, en el de la facu funciona. reemplazarlo por
printf("nn";
getch();
y comentar la linea de #define*/

#define parar printf("nn"; system("pause";



int VehiculoMayorKM(float *);
float TotalFacturadoV(float, float, float);
void Ordenar(int *, int *);


main()
{
int codVeh;
float kmSalida=0;
float kmLlegada=0;
int vCodVeh[]={1,2,3,4,5} ;
float kmAcumVeh[5]={0};
int CantViajesVeh[5]={0};
int ID[5]={0,1,2,3,4};
float MaxKmViaje=0;
float tfv[5]={0};
float tf={0};
const float tarifa = {6.25};
int i;


/*carga de datos*/

printf("CodVehiculo: ";
scanf("%d", &codVeh);

while (codVeh!=0 && codVeh>0 && codVeh<6)
{

do
{
printf("KmSalida: ";
scanf("%f", &kmSalida);

}while (kmSalida<0);

do
{
printf("KmLlegada: ";
scanf("%f", &kmLlegada);

}while (kmLlegada<=0 ||kmSalida==kmLlegada);


//Me fijo si el viaje que cargo es el maximo en kilometrajes
MaxKmViaje = MaxKmViaje<(kmLlegada-kmSalida)?(kmLlegada-kmSalida):MaxKmViaje;

//acumulo los kilometros por vehiculo
kmAcumVeh[codVeh-1]= kmAcumVeh[codVeh-1] + (kmLlegada-kmSalida);

//cuento los viajes
CantViajesVeh[codVeh-1] = CantViajesVeh[codVeh-1] + 1;

//total facturado por vehiculo
tfv[codVeh-1]= TotalFacturadoV(kmLlegada ,kmSalida, tarifa);

//total facturado
tf = tf + (kmLlegada-kmSalida)* tarifa;


printf("CodVehiculo: ";
scanf("%d", &codVeh);
}

codVeh = VehiculoMayorKM(tfv);

//impresiones
printf("nn";
printf("Mayor cantidad de km en un viaje: %10.2f KM", MaxKmViaje);

parar;

//Total por vehiculo
for(i=0;i<5;i++)
{
printf("vehiculo: %d %10.2f Km Recorridos n",vCodVeh, kmAcumVeh );
}

parar;

//Muestro el vehiculo que mas kilometros recorrio.
codVeh = VehiculoMayorKM(tfv);
printf("vehiculo: %d %10.2f Km Recorridos n",codVeh, kmAcumVeh[codVeh-1]);


parar;


//ordeno el vector ID
Ordenar(ID,CantViajesVeh);



//salida de datos
printf("Reporte nn";
for(i=0;i<5;i++)
{
printf("Vehiculo: %d CantViajes: %d KM: %10.2f Total F %10.2f n", vCodVeh[ID], CantViajesVeh[ID],kmAcumVeh[ID], tfv[ID]);

/*
Esto es para debug, esta bueno para saber en que registro pincha

printf("Vehiculo: %d n", vCodVeh[ID]);
printf("CantViajes: %d n",CantViajesVeh[ID]);
printf("KM: %10.2f n", kmAcumVeh[ID]);
printf("Total F %10.2f nn", tfv[ID]);
*/
}

parar;


}

int VehiculoMayorKM(float*tfv)
{ int i;
float aux=0;
int CodVeh=0;

for(i=0;i<5;i++)
{
if(aux<tfv)
{
aux= tfv;
CodVeh = i+1; //me da el codigo de vehiculo
}
}
return CodVeh;

}

float TotalFacturadoV(float kmLlegada, float kmSalida, float tarifa)
{
return (kmLlegada-kmSalida)* tarifa;
}

void Ordenar(int*ID, int*CantViajesVeh)
{ int i=0, k=1, aux=0, cota=4;

while(k!=0)
{
k=0;
for(i=0;i<cota;i++)
{
if(CantViajesVeh[ID[i+1]]> CantViajesVeh[ID])
{
aux = ID;
ID = ID[i+1];
ID[i+1] = aux;
k=i;
}
}


cota=k;
}

}



Espero que les sirva


Datos archivados del Taringa! original
0puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

m
mojonjunior🇦🇷
Usuario
Puntos0
Posts1
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.