ATM compiling error

My program is showing compiler 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.
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

Here’s my code

#include

using namespace std;

int main()

 {

         float x,y;

         cin>>x>>y;

         if(x%5==0&&y>x+0.5)

             {

                 cout<<(y-x)-0.5;

             }

         else

                cout<<y;

         return 0;

  }

Here’s the error

prog.cpp: In function ‘int main()’:

prog.cpp:7:6: error: invalid operands of types ‘float’ and ‘int’ to binary ‘operator%’

if(x%5==0&&y>x+0.5)

 ^

Can somebody help me

x is a float type value.You cant use modulo operator on float values

1 Like

Make x an int value and make y a float value.

What can I do to solve that problem?

x is always an integer so you can use int datatype and then use the % operator.

2 Likes

Ok I understand now.
Make x an int value and make y a float value.
Thanks for Knocking some sense into me. :slight_smile:

You have to subtract 0.50 from variable y, not x.