A cura di: Administrator
/*
* Un garage addebita un importo minimo di $2,00 per un parcheggio
* fino a tre ore.
* Il garage addebita un'addizionale di $0,50 per ogni ora o frazione
* di essa che ecceda le tre di base. L'addebito massimo per ogni dato
* periodo di 24 ore è $10,00.
* Assumete che nessuna auto parcheggi per più di 24 ore per volta.
* Scrivete un programma che calcoli e visualizzi gli addebiti
* per ognuno dei tre clienti che hanno parcheggiato le proprie
* auto in questo garage ieri.
* Dovrete immettere le ore di parcheggio per ogni cliente.
* Il vostro programma dovrà visualizzare i risultati in un formato
* tabulare ordinato e dovrà calcolare e visualizzare il totale delle
* ricevute di ieri. Il programma dovrà utilizzare la funzione
* calculateCharges per determinare l'addebito di ogni cliente.
* I vostri risultati dovranno apparire nel seguente formato:
*
* Car Hours Charge
* 1 1.5 2.00
* 2 4.0 2.50
* 3 24.0 10.00
* TOTAL 29.5 14.50
*/
#include <math.h>
#include <stdio.h>
float calculateCharges(float);
int
main(void)
{
float hours1, hours2, hours3, hoursTotal = 0;
float charge1, charge2, charge3, chargesTotal;
printf("Enter hours for car 1: ");
scanf("%f", &hours1);
hoursTotal += hours1;
charge1 = calculateCharges(hours1);
printf("Enter hours for car 2: ");
scanf("%f", &hours2);
hoursTotal += hours2;
charge2 = calculateCharges(hours2);
printf("Enter hours for car 3: ");
scanf("%f", &hours3);
hoursTotal += hours3;
charge3 = calculateCharges(hours3);
printf("\n%-8s%8s%8s\n", "Car", "Hours", "Charge");
printf("%-8d%8.2f%8.2f\n", 1, hours1, charge1);
printf("%-8d%8.2f%8.2f\n", 2, hours2, charge2);
printf("%-8d%8.2f%8.2f\n", 3, hours3, charge3);
chargesTotal = charge1 + charge2 + charge3;
printf("%-8s%8.2f%8.2f\n\n", "TOTAL", hoursTotal, chargesTotal);
return (0);
}
float
calculateCharges(float _hours)
{
float charges = 2.00; /* fixed */
if (_hours > 3.00) /* more than 3 hours */
charges += 0.50 * ceil(_hours - 3.00);
if (charges > 10.00)
charges = 10.00;
return (charges);
}