Link to the problem : https://www.codechef.com/problems/HS08TEST
Description
Pooja would like to withdraw X $US from an ATM. The cash machine will only accept the transaction if X is a multiple of 5, and Pooja's account balance has enough cash to perform the withdrawal transaction (including bank charges). For each successful withdrawal the bank charges 0.50 $US. Calculate Pooja's account balance after an attempted transaction.
Input
Positive integer 0 < X <= 2000 - the amount of cash which Pooja wishes to withdraw.
Nonnegative number 0<= Y <= 2000 with two digits of precision - Pooja's initial account balance.
Output
Output the account balance after the attempted transaction, given as a number with two digits of precision. If there is not enough money in the account to complete the transaction, output the current bank balance.
Example - Successful Transaction
Input: 30 120.00
Output: 89.50
Example - Incorrect Withdrawal Amount (not multiple of 5)
Input: 42 120.00
Output: 120.00
Example - Insufficient Funds
Input: 300 120.00
Output: 120.00
I unable to find any incorrect output when I change the parameters in transaction function but still I am unable to submit it successfully due to some error which I am not able to find. This is my first try with codechef or in fact with any competitive programming so any help will be appreciated.Here's my code:
#define count 0.5
float transaction(int , float);
int main(void)
{
float transaction(int x, float acc_bal)
{
float z=acc_bal-(x+count);
if(x<acc_bal)
{
if(x%5==0)
{
printf("%.2f",z);
}
}
if(x%5!=0)
{
printf("%0.2f",acc_bal);
}
}
transaction(42,120.00);
}