ayudame por favor donde esta el error ? como calculo la distancia de entre dos puntos (de ambos con coordenada x e y positivas )
#include<stdio.h>
#include<math.h>
int distancia(int x1, int x2, int y1, int y2);
main()
{
int coorX1 , coorX2 , coorY1 , coorY2 ;
printf("ingrese 2 puntos\ncoordenada x1:\ncoordenada y1:\n");
scanf("%d%d",&coorX1,&coorY1);
printf("ingrese 2 puntos\ncoordenada x2:\ncoordenada y21:\n");
scanf("%d%d",&coorX2,&coorY2);
if(coorX1>0 && coorX2>0 && coorY1>0 && coorY2>0 ) {
printf("la distancia es %d\n",distancia(coorX1 , coorX2 , coorY1 , coorY2) );
}
else {
printf("los puntos tiene que ser de coordenadas positivos \n");
}
return 0 ;
}
int distancia(int x1, int x2, int y1, int y2)
{
int distancia ;
distancia = sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) );
return distancia ;
}
cuando publiques codigo, usa las etiquetas GeSHi (arriba de los emoticones a la derecha)
tu codigo tiene los siguientes errores....
- declaras una variable con el mismo nombre de la funcion (distancia)
- la variable y la función son "int" (entero), pero "sqrt" devuelve un valor "double"(decimal de doble precisión) eso causa un error
- en tu ultimo printf, imprimes "la distancia es %d\n" eso imprimirá un numero sin coma, debe usar %f en lugar de %d
- los valores que puedes ingresar no incluyen 0 (algunos incluyen el 0 como "positivo" para estos casos ya que es la base del eje de coordenadas)
de resto el codigo se ve bien