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
-
Hola, dejo una posible solución para el ejercicio CU00547F del curso online de programación en Lenguaje C.
EJERCICIO
Estudia el siguiente código:
#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
}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"
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.
c) Reescribe el código de modo que todos los if lleven corchetes delimitadores { … } tanto para los if como para los else.
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
}
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.
#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
-
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!
-
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í:
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.