Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: pedro,, en 24 de Junio 2016, 11:24

Título: Ejemplo funciones en C hallar el máximo de dos números C (LenguajeC) CU00547F
Publicado por: pedro,, en 24 de Junio 2016, 11:24
Hola, dejo una posible solución para el ejercicio CU00547F del curso online de programación en Lenguaje C.

Citar
EJERCICIO
Estudia el siguiente código:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int max(int num1, int num2);
 
int main () {
   int a = 100;
   int b = 200;
   int ret;
   ret = max(a, b);
   printf( "Max value is : %d\n", ret );
   return 0;
}
 
int max(int num1, int num2) {
   int result;
   if (num1 > num2)
      result = num1;
   else
      result = num2;
   return result; //Ejercicios aprenderaprogramar.com
}
Citar
a) Sin ejecutar el código (sólo pensando) responde: ¿para qué sirve la función max? ¿cuál será el resultado del programa?
Para determinar cual de los dos números es mayor.
"Max calue is : 200"

Citar
b) ¿En qué línea se produce la llamada a la función max? ¿Qué valor se almacenará en la variable ret y por qué?
ret = max(a, b);
200, que es el resultado que devuelve la función max.

Citar
c) Reescribe el código de modo que todos los if lleven corchetes delimitadores { … } tanto para los if como para los else.
Código: [Seleccionar]
int max(int num1, int num2);
 
int main () {
   int a = 100;
   int b = 200;
   int ret;
   ret = max(a, b);
   printf( "Max value is : %d\n", ret );
   return 0;
}
 
int max(int num1, int num2) {
   int result;
   if (num1 > num2){
      result = num1;
   }else{
      result = num2;
   }
   return result; //Ejercicios aprenderaprogramar.com
}

Citar
d) Crea un programa análogo a este con una función que permita determinar, dados tres números, cuál es el mayor. Invoca la función pasándole como datos 23, 87, 45 y muestra el resultado devuelto por la función por pantalla.
Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int max(int num1, int num2, int num3);

int main() {
    int num1 = 23;
    int num2 = 87;
    int num3 = 45;
    int resultado;

    resultado = max(num1, num2, num3);
    printf( "El valor m\xA0ximo es : %d\n", resultado );
    return 0;
}
int max(int num1, int num2, int num3) {
    int resultado = 0;
    if (num1 > num2 && num1 > num3){
        resultado = num1;
    } else if (num2 > num1 && num2 > num3){
        resultado = num2;
    } else if (num3 > num1 && num3 > num2){
        resultado = num3;
    }
    return resultado;
}

Saludos. ;D
Título: Re:C (LenguajeC) Funciones en C. CU00547F
Publicado por: César Krall en 27 de Junio 2016, 22:16
Hola! Todo bien, una cosa interesante sería ver: ¿si le pasamos como números a la función del apartado d) 87, 87, 45 ¿Qué resultado obtendríamos? ¿Sería lo deseable? Y si no es lo deseable, ¿cómo podríamos modificarlo para que nos devuelva 87?

Saludos!
Título: Re:Ejemplo funciones en C hallar el máximo de dos números C (LenguajeC) CU00547F
Publicado por: pedro,, en 07 de Julio 2016, 00:36
Hola César.

Añadiendo un "=" después de cada ">" en las condiciones del "if" de la función "max" valdría para obtener un buen resultado, dicha función quedaría así:

Código: [Seleccionar]
int max(int num1, int num2, int num3) {
    int resultado = 0;
    if (num1 >= num2 && num1 >= num3){
        resultado = num1;
    } else if (num2 >= num1 && num2 >= num3){
        resultado = num2;
    } else if (num3 >= num1 && num3 >= num2){
        resultado = num3;
    }
    return resultado;
}

Saludos.