Un saludo a quien lea esto.
Soy principiante en "C" y escribí un intento de programa para obtener la distancia entre dos puntos de un plano cartesiano a manera de ejercicio.
El programa funciona perfectamente, excepto por un detalle: Me gustaría poder obtener las distancias en decimales y no sólo en enteros.
No sé que hacer, estuve experimentando pero no tuve éxito. Espero que me puedan ayudar.
Estoy en Windows y utilizo el compilador GNU CC compiler (creo, eso dice mi IDE).
Muchas gracias.
Soy principiante en "C" y escribí un intento de programa para obtener la distancia entre dos puntos de un plano cartesiano a manera de ejercicio.
El programa funciona perfectamente, excepto por un detalle: Me gustaría poder obtener las distancias en decimales y no sólo en enteros.
No sé que hacer, estuve experimentando pero no tuve éxito. Espero que me puedan ayudar.
Estoy en Windows y utilizo el compilador GNU CC compiler (creo, eso dice mi IDE).
Muchas gracias.
Código [Seleccionar]
/** Programa para encontrar la distancia entre dos puntos **/
#include<stdio.h>
#include<math.h>
main() {
//Primer punto
int x1 = 0; //P1(x1,0)
int y1 = 0; //P1(0,y1)
//Segundo punto
int x2 = 0; //P2(x2,0)
int y2 = 0; //P2(0,y2)
//Diferencias de X e Y.
int difx;
int dify;
//Resultado
int distancia;
//Obtención de los valores para el primer punto.
//x1
printf("Introduce el valor \"X\" del primer punto:\n");
scanf("%d", &x1); //Valor de equis en el primer punto.
//y1
printf("Introduce el valor \"Y\" del primer punto:\n");
scanf("%d", &y1); //Valor de ye en el primer punto.
//Obtención de los valores para el segundo punto.
//x2
printf("Introduce el valor \"X\" del segundo punto:\n");
scanf("%d", &x2); //Valor de equis en el primer punto.
//y2
printf("Introduce el valor \"Y\" del segundo punto:\n");
scanf("%d", &y2);
if(x1 > x2){
difx = x1 - x2;
}else{
difx = x2 - x1;
}
/**Función para obtener la diferencia de X, identificando quien es el mayor.**/
if(y1 > y2){
dify = y1 - y2; //Si Y1 es mayor, entonces se le resta y2 para evitar negativos.
}else{
dify = y2 - y1;
}
/**Función para obtener la diferencia de Y, identificando quien es el mayor.**/
distancia = sqrt((1.0 + pow(difx,2)) + (1.0 + pow(dify,2)));
printf("%d", distancia);
return 0;
}