Título: ayuda en c Publicado por: francis polo en 27 Junio 2014, 06:11 am 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 ; } Título: Re: ayuda en c Publicado por: engel lex en 27 Junio 2014, 06:32 am 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 |