well, I have tested all the examples mentioned in the problem description(which work all right on my computer using gcc 4.8.2) but when I upload and hit submit, it says running and then suddenly WRONG ANSWER with a cross, not sure whats wrong with my code, you may see it below:
#include <stdio.h>
int main(void)
{
int amount;
float balance;
scanf ("%i %f", &amount, &balance);
float ans = balance;
if (amount % 5 == 0 && amount < balance)
{
ans = balance - (amount + 0.50);
}
printf ("%.2f", ans);
return 0;
}
1 Like
You are checking for
“amount < balance”
Instead, you should check for:
“amount + 0.5 < balance && amt%5==0”
this is because the sum, along with the extra 0.50 is required to do the transaction.
1 Like
The amount 0.50 is also to be deducted from the balance.
So, the condition amount < balance should be amount <= (balance-0.5)
Well, how do i correct the error in this ?
Sorry guys if I deleted some comment, when I converted this to answer, but I think this is a valid answer
deleted comment: “Hmmmm, thats gives negative 0.40, but why’s that ? my codes completely optimised for that, is it because I’m comparing an int(amount) with a float(balance) or is it some other reason ? (nibnalin)”
No, every good language can compare integers with real numbers correctly…
Read the question again and check the if
condition in your code.