Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/08/2013, 13:02
starfix
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 5 meses
Puntos: 25
Respuesta: ¿Alguien me puede explicar punteros con este programa?

tendrias que anidar los if:

Código C++:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. float menor(float,float,float);
  5. void swap(float*,float*);
  6.  
  7. int main() {
  8.     // declaraciÛn de variables
  9.     float a, b, c;
  10.    
  11.     // cuerpo de main()
  12.     printf("Introduce 3 reales: ");
  13.     scanf("%f%f%f", &a, &b, &c);
  14.    
  15.     printf("El menor es: %f\n", menor(a, b, c));
  16.    
  17.     system("pause");
  18.     return 0;
  19. }
  20.  
  21. void swap(float *a, float *b) {
  22.     float aux;
  23.    
  24.     aux = *a;
  25.     *a = *b;
  26.     *b = aux;
  27. }
  28.  
  29. float menor(float a, float b, float c) {
  30.    
  31.     if(a > b) {
  32.       swap(&a, &b);
  33.       if (a>c){
  34.          swap(&a, &c);
  35.       }
  36.     else if(a > c) swap(&a, &c);
  37.    
  38.     return a;
  39. }


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