ayuda en c

Iniciado por francis polo, 27 Junio 2014, 06:11 AM

0 Miembros y 1 Visitante están viendo este tema.

francis polo

 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 ;
  }
 



engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.