Código:
Entonces si a>b envía la direccion de la variable a y b a la función swap, perfecto. Luego swap recibe el contenido de la dirección de a y b y cambia los valores para que el menor sea a. Pero luego compara b y c y cuando la función devuelve los valores de swap, habiéndole pasado if(b > c) swap(&b, &c); , ¿donde los graba en a / b? es que ahí es donde me quedo.#include <stdio.h> #include <stdlib.h> float menor(float,float,float); void swap(float*,float*); int main() { // declaraciÛn de variables float a, b, c; // cuerpo de main() printf("Introduce 3 reales: "); scanf("%f%f%f", &a, &b, &c); printf("El menor es: %f\n", menor(a, b, c)); system("pause"); return 0; } void swap(float *a, float *b) { float aux; aux = *a; *a = *b; *b = aux; } float menor(float a, float b, float c) { if(a > b) swap(&a, &b); if(b > c) swap(&b, &c); if(a > b) swap(&a, &b); return a; }
Si alguien fuera tan amable de explicármelo qué hace el puntero ahí se lo agradecería mucho en serio.
Gracias!