Ambulancia más cercana según coordenadas

Se plantea realizar el siguiente ejercicio o práctica de programación:

Existen ambulancias que recorren la ciudad y cuando se recibe una llamada de emergencia, se informa de la ubicación de la emergencia mediante coordenadas, lo mismo que la ubicación de todas las ambulancias. Se sabe que existen N ambulancias en servicio. Realice un algoritmo que, dada la información necesaria, informe las
coordenadas de la ambulancia más cercana al punto de emergencia.

Una posible solución a la práctica planteada puede ser la siguiente:

/*

Se quiere realizar el siguiente ejercicio:
Existen ambulancias que recorren la ciudad y cuando se recibe 
una llamada de emergencia, se informa de la ubicación de la 
emergencia mediante coordenadas, lo mismo que la ubicación de
todas las ambulancias. Se sabe que existen N ambulancias en servicio.
Realice un algoritmo que, dada la información necesaria, informe las 
coordenadas de la ambulancia más cercana al punto de emergencia.

*/

// Inclusión de las librerías necesarias
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

#define MAX 10

// Definición de la estructura punto para
// comprobar la ubicación de las ambulancias
typedef struct p {
    float x;
    float y;
} Punto;


int main()
{
    // Definición de variables a utilizar
    // Crear la matriz de ambulancias
    Punto ambulancias[MAX];
    Punto vector;
    // Definir variables auxiliares
    int contador = 0;
    float posicion_x = 0;
    float posicion_y = 0;
    float modulo = 0;
    int posicion_menor = 0;
    float distancia = 0;

    // Establecemos las coordenadas de posición de
    // las ambulancias de forma aleatoria
    // en primer lugar activamos el generador de
    // números aleatorios para que no genere siempre
    // la misma cadena
    srand(time(NULL));
    // recorrer el bucle estableciendo los puntos de
    // coordenadas para cada ambulancia
    for(contador=0; contador<MAX; contador++) {
        // generar un valor x e y aleatorio para la
        // posicion de la ambulancia
        ambulancias[contador].x = rand()%100;
        ambulancias[contador].y = rand()%100;
    }

    // Solicitar llamada de emergencia
    printf("Llamada Emer. Coordenada X: ");
    scanf(" %f",&posicion_x);
    printf("Llamada Emer. Coordenada Y: ");
    scanf(" %f",&posicion_y);

    // Se realiza la búsqueda de la ambulancia más cercana a la vez
    // que se visualizan los datos
    printf("\nCoordenadas Llamada: %6.2f %6.2f",posicion_x,posicion_y);
    printf("\nPosiciones Ambulancias");
    for(contador=0; contador<MAX; contador++) {
        // obtener vector del punto 1 al punto 2
        vector.x = ambulancias[contador].x-posicion_x;
        vector.y = ambulancias[contador].y-posicion_y;
        // calculo de modulo del vector
        modulo = sqrt(pow(vector.x,2)+pow(vector.y,2));
        printf("\n%d. X: %6.2f Y: %6.2f",contador+1,ambulancias[contador].x,ambulancias[contador].y);
        printf(" -  %6.2f",modulo);
        // se obtiene el menor si es la primera iteración del bucle
        // se establece ese primer registro como menor y sino se realiza
        // la comparación
        if(contador==0) {
            posicion_menor = contador;
            distancia = modulo;
        } else {
            if(distancia>modulo) {
                distancia = modulo;
                posicion_menor = contador;
            }
        }
    }

    printf("\n============================================================");
    printf("\nAmbulancia No.%d ,Distancia: %.2f",posicion_menor+1,distancia);
    printf("\n============================================================\n");


    return 0;
}

Una vez compilado y ejecutado el ejercicio planteado, se ha de mostrar un resultado similar al siguiente:

Práctica C - Ambulancia Coordenadas

Práctica C – Ambulancia Coordenadas

Gracias por vuestra visita y un saludo, hasta la próxima.

if ( MeQuedoEnCasa == SoyResponsable ) {

  printf("Lo Conseguiremos entre todos");

} else {

 printf("Error 404 - Algo estas haciendo mal, piénsalo");

}