Мне нужно сделать функцию с плавающей запятой calculateClaim(vehicleClass, distanceTravel)
, которая принимает класс транспортного средства и пройденное расстояние, определяет тариф и возвращает сумму претензии.Основная функция считывает класс пройденного транспортного средства и пройденного расстояния, вызывает функцию calculateClaim()
и рассчитывает общую сумму заявки на пробег.
Однако сумма заявки не отображается.Отображается только 0.00
.
Программа, которую я сделал, выглядит следующим образом:
#include <stdio.h>
float calculateClaim(char, int);
int main(void){
char Vehicle, choice;
int Distance, num;
float Amount, Total;
printf("...............................................................\n");
printf(" Class of Vehicle\n");
printf("...............................................................\n");
printf(" A B C D\n");
printf("Rate (cent/km) 70 60 50 45\n");
printf("...............................................................\n\n");
printf("Enter Class of Vehicle : ");
scanf("%c", &Vehicle);
num = 1;
Total = 0;
do{
printf("Enter Distance Travelled (km) : ");
scanf("%d", &Distance);
calculateClaim(Vehicle, Distance);
printf("Amount of Claim %d \t\t: %.2f \n", num, Amount);
printf("Next Mileage Claim (enter Y/N)\t: ");
scanf(" %ch", &choice);
printf("\n");
num++;
Total = Amount + Total;
}while(choice == 'Y');
printf("\nTotal Claim Amount \t\t: %.2f", Total);
return 0;
}
float calculateClaim(char vehicleClass, int distanceTravel){
float Amount;
float calculateClaim;
if(vehicleClass=='A')
Amount = 0.7 * distanceTravel;
else if(vehicleClass=='a')
Amount = 0.7 * distanceTravel;
else if(vehicleClass=='B')
Amount = 0.6 * distanceTravel;
else if(vehicleClass=='b')
Amount = 0.6 * distanceTravel;
else if(vehicleClass=='C')
Amount = 0.5 * distanceTravel;
else if(vehicleClass=='c')
Amount = 0.5 * distanceTravel;
else if(vehicleClass=='D')
Amount = 0.45 * distanceTravel;
else if(vehicleClass=='d')
Amount = 0.45 * distanceTravel;
return calculateClaim;
}