Composition86
23-08-2008, 17:48
Sto facendo un esercizio per il calcolo dei costi di un parcheggio.
La richesta è calcolare i costi di un parcheggio sapendo che:
-fino a 3 ore il costo è fisso a 3.00 $;
-dopo le 3 ore costa in aggiunta 0.50 $ per ogni ora in più.
Al momento ho tirato fuori questo programma (ancora da raffinare per quanto riguarda il secondo punto):
/*Programma sull'uso della funzione calcolaAddebito*/
#include <stdio.h>
#include <stdlib.h>
float calcolaAddebito(float); /*Prototipo della funzione*/
main()
{
float tempo; /*Definisco le variabili del main*/
printf ("Inserire le ore di parcheggio della vettura (es. 4.5, max 24.0)\n");
scanf ("%.1f", &tempo);
printf ("L'addebito e': %.2f$\n", calcolaAddebito(tempo));
/*calcolaAddebito(tempo) è la funzione chiamante*/
system("pause");
return 0;
}
/*Definizione della funzione calcolaAddebito*/
float calcolaAddebito(float ore)
{
float s = 0.50, max = 10.00, addebitomin = 3.00, addebito; /*Variabili della funzione*/
if (ore > 3.0) {
addebito = addebitomin + s * ore;
}
else
addebito = addebitomin;
return addebito;
}
Il problema è che, senza valutare il numero di ore, il programma mi da' in output sempre un costo fisso di 3.00 $.
Errori di sintassi non ce ne sono, in qualche modo non viene valutato il fattore "+ s * ore". Mi sapete aiutare?
La richesta è calcolare i costi di un parcheggio sapendo che:
-fino a 3 ore il costo è fisso a 3.00 $;
-dopo le 3 ore costa in aggiunta 0.50 $ per ogni ora in più.
Al momento ho tirato fuori questo programma (ancora da raffinare per quanto riguarda il secondo punto):
/*Programma sull'uso della funzione calcolaAddebito*/
#include <stdio.h>
#include <stdlib.h>
float calcolaAddebito(float); /*Prototipo della funzione*/
main()
{
float tempo; /*Definisco le variabili del main*/
printf ("Inserire le ore di parcheggio della vettura (es. 4.5, max 24.0)\n");
scanf ("%.1f", &tempo);
printf ("L'addebito e': %.2f$\n", calcolaAddebito(tempo));
/*calcolaAddebito(tempo) è la funzione chiamante*/
system("pause");
return 0;
}
/*Definizione della funzione calcolaAddebito*/
float calcolaAddebito(float ore)
{
float s = 0.50, max = 10.00, addebitomin = 3.00, addebito; /*Variabili della funzione*/
if (ore > 3.0) {
addebito = addebitomin + s * ore;
}
else
addebito = addebitomin;
return addebito;
}
Il problema è che, senza valutare il numero di ore, il programma mi da' in output sempre un costo fisso di 3.00 $.
Errori di sintassi non ce ne sono, in qualche modo non viene valutato il fattore "+ s * ore". Mi sapete aiutare?