I don't able to detect the error

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.

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 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.
#include <stdio.h>

int main()
int amount;
float total;
printf(“Enter the initial amount: “);
scanf(”%f”, &total);

printf("\nEnter the withdrawal amount: ");
scanf("%d", &amount);

if((amount %5== 0) && (total > (amount + 0.5)))
    total = total - (amount + 0.5);
    printf("%.2f", total);
    printf("%.2f", total);

return 0;


Basic things first, look at the output the question is asking for.
All it wants is the total value after the transaction. So if you print anything other than that(such as asking for the value etc), it will make it wrong.
secondly, look at the input. The question is first giving you the the amount she wants to withdraw, and then the amount she already has. You are accepting them in the wrong order.
Thirdly, the condition needs to be total >= amount+0.5, you missed the =.
here is the corrected code : Solution: 43338095 | CodeChef

NOTE : This was a problem everyone knows so it was ok, but please provide the question link as well next time :slight_smile:
Hope it helps,
Happy Coding :slight_smile: