tendrias que anidar los if:
Código C++:
Ver original#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
));
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 (a>c){
swap(&a, &c);
}
else if(a > c) swap(&a, &c);
return a;
}
creo que ahí debería funcionar.
- si
a es mayor a
b, se cambian de posición y queda el menor en
a
- si se cumplió lo anterior, se comprueba que el valor en a sea menor a
c, si es asi, se coloca en
a el menor
-en caso de que no se cumpla el primero punto (
a es menor o igual a
b), se comprueba si
a es mayor a
c y, si esto es cierto, se coloca en
a el menor