 # ATM: Getting wa

#include
int main()
{
int amt;
float balance;

``````	std::cin>>amt>>balance;
if (amt%5!=0)
{
std::cout<<balance;
}
else if (amt%5==0&&amt<balance)
{
balance=balance-amt-0.5;
std::cout<<balance;
}
else if (amt>=balance)
{
std::cout<<balance;
}

return 0;
}
``````

wHAT IS WRONG IN ABOVE PROBLEM?

1 Like

There are a couple of errors in your code.

(1).The condition (amt%5==0 && amt< balance) is incorrect.

Read the following line in problem statement:

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.

That means for successful transaction , (amount pooja wants to withdraw+ the bank service charge <=Current balance in Pooja’s Account)

You are not considering the bank-charge.

So correct the above condition as:

`````` else if ((amt%5==0) && (amt+.5)<=balance)
``````

(2)Also ,your code is missing else condition

Your code prints nothing when the three condition does not hold.

This is wrong ,youshould print the balance under such circumstances .

``````    if (amt%5!=0)
{
std::cout<<balance;
}
else if (amt%5==0&&amt+.5<=balance)
{
balance=balance-amt-0.5;
std::cout<<balance;
}
else if (amt>=balance)
{
std::cout<<balance;
}
else
{
std::cout<<balance;
}``````
3 Likes

#include<stdio.h>
int main()
{
int x;
float y;
printf(“Input\n”);
scanf("%d %f",&x,&y);
if(x>0 && x<=2000 && y>=0 && y<=2000 && y-x-0.5>=0 && x%5==0)
y=y-x-0.50;
printf(“Output\n”);
printf("%f",y);
return 0;
}
WHAT WRONG IN THIS

https://www.codechef.com/viewsolution/7063756 here is my solution
and you are getting a WA because your code is missing some corner conditions

3 Likes
//