Please tell me whats wrong in this code, please

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

int main(void)
{
int x;
float y,z;

scanf("%d",&x);
scanf("%f",&y);

if(x%5==0)
{
if(x<y)
{
if(0<x&&x<=2000&&0<y&&y<=2000)
{

          z=y-x-0.5; 
          printf("%.2f",z);
        }

  }  
  if(x==y)
    printf("%.2f",y);
    
  if(x>y) 
    printf("%.2f",y);  

}
if(x%5!=0)
printf("%.2f",y);

return 0;

}

I am not understanding why you have taken the third if condition since there is no condition specified in the question also for the last if i will recommend to use else instead of if .

There are certain problems with the conditionals. Here, you have added the condition for the amount to be withdrawn to be a multiple of 5 as well as be less than the balance.

But what is the balance is less than the amount to be withdrawn? In you code, you have written like this:-

    if(x>y) 
    printf("%.2f",y);  

But the transaction would stand unsuccessful, so it should print a message of being unsuccessful.

It would be much better, if you post an input and an expected output case.