Oi pessoal, alguém pode me ajudar
Estou aprendendo a programar e travei nesse exercício. Não sei como fazer a contagem de movimentos e também informar que um dos valores iniciais é inválido.
O usuário deve informar dos pontos (x1,y1)- que indica o canto inferior esquerdo do retângulo e (x2,y2) - que indica o canto superior direito, além de informar um ponto inicial e quanto o ponto se desloca(caso um dos valores for inválido o programa é encerrado). No fim, o programa termina quando o ponto sair do retângulo, informando quantos movimentos o ponto fez antes de sair do perímetro.
#include<stdio.h>
#include<locale.h>
int main (){
setlocale(LC_CTYPE,"");
float x1, y1;
float x2, y2;
float x3, y3;
float anda=0;
int direcao;
printf("\n Informe os valores de x e y, respectivamente, do ponto P1: ");
scanf("%f %f", &x1, &y1);
printf("\n Informe os valores de x e y, respectivamente, do ponto P2: ");
scanf("%f %f", &x2, &y2);
while (x1>=x2 || y1>=y2){
printf("\n O valor das coordenadas de P2 devem ser maiores que P1. \n Insira novamente valores para o ponto P2: ");
scanf("%f %f", &x2, &y2);
}
printf("\n Informe as coordenadas do objeto: ");
scanf("%f %f", &x3, &y3 );
printf("\n Informe o passo de deslocamento: ");
scanf("%f", &desloc);
printf("\n Para o objeto se mover use: \n 1 - andar para a esquerda \n 2 - andar para a direita \n 3 - andar para baixo \n 4 - andar para cima");
do {
printf("\n Informe a direçao: ");
scanf("%d", &direcao);
switch(direcao){
case 1: x3 = x3 - anda;
break;
case 2: x3 = x3 + anda;
break;
case 3: y3 = y3 - anda;
break;
case 4: y3 = y3 + anda;
break;
default: printf("\n Direçao inválida.");
}
printf("\n Direçao atual: %.1f %.1f", x, y);
} while (x3>=x1 && x3<=x2 && y3>=y1 && y3<=y2);
printf("\n\n O objeto saiu do perímetro definido.");
return 0;
}