int result;
result=0;
Puedes definir el valor de result en la propia declaración:
int result = 0;
En la primera sentencia del bucle for, se te olvidó declarar el tipo de i:
for(int i = 0; bla bla bla
Puedes usar += para tu asignación a result dentro del bucle:
result+=max(a,b);
Como te comenta el compañero, tienes que hacer return del resultado de la funciones que declares con cualquier tipo que no sea void.
En tu función tendrías que retornar result trás el bucle for. En el código que compartes tienes result declarado antes de la función product, pero nunca lo usas fuera. Debe estár dentro de la función.
#include <iostream> // input(entrada) output(salida) stream(<< >>) cout es C salida, cin es C entrada
using namespace std; // te ahorra poner std::cout std::cin std::string std::getline ...
// Prototipo de funciones
int min(int, int);
int max(int a, int b); // aconsejable añadirle los nombres de los parametros que vas a usar abajo tambien aqui, para facilitar la comprension del codigo, a pesar de no ser estrictamente necesario.
int product(int, int);
// función principal
int main(int argc, char **argv) { /* deberías declarar así siempre la funcion principal del programa. El primer argumento contiene el número de datos enviados por consola en el caso de correr el programa desde la cmd de Windows o la terminal de Linux.
Por ejemplo en la cmd, miPrograma.exe 5 5
Los argumentos se encuentran en el segundo parametro si lo recorres utilizando argv como tamaño, puedes obtenerlos para utilizarlos en tu programa en lugar de usar cin. Así es como se progaman los comandos de windows y linux.
Te lo comento no porque tenga gran relevancia o sea algo que tengas que saber de memoria ahora mismo, si no para que no te suenen a chino cuando los veas en clase. */
cout << "El resultado es: " << product(5, 5) << endl;
cin.get(); // Se suele utilizar para pausar el programa y que no se cierre sin que te de tiempo a ver los resultados.
return 0;
}
// declaracion de funciones. Al estar debajo de main, tienen que tener su prototipo definido antes de main.
// Se aconseja comentar el código para entenderlo mejor. Ej:
/* Retorna el entero menor de dos enteros */
int min(int num1, int num2) {
if (num1 < num2) { /* si el primer parametro es menor que el segundo, entonces: */
return num1; // retorna el primer parametro
}
return num2; // retorna el segundo. Una vez se retorna una función, se sale de ella, asique si se retorna num2 es porque no se complio la condicion anterior que retornaba num1
}
/* Esta funcion hace lo mismo que la anterior, pero retorna el mayor en lugar del menor */
int max(int a, int b) {
if (a > b) {
return a;
} else { // En este caso da igual que se añada el else o no. Si en el if anterior hubiese un cout en lugar de un return, entonces si que sería importante el else. Debido a que no se retornaría a, se imprimiría, y sin el else la ejecucion continuaria retornando b despues de imprimir en pantalla a.
return b;
}
}
int product(int num1, int num2) {
int res = 0;
for(int i = 1; i <= min(num1, num2); ++i) {
res += max(num1, num2);
}
return res;
}
Practica! Haz por ejemplo un programa que imprima en pantalla los números impares situados entre los 2 números que indique el usuario.
Otro al que le pidas al usuario su nombre y su apellido en minúsculas, y le pongas ambas iniciales en mayúsculas.
Un programa que te diga el número de letras y palabras que tiene una frase.
...
Vas practicando con las cosas más sencillas que se te ocurran y según vas mejorando, vas haciendo cosas cada vez más difíciles.
Para la programación te recomiendo 80% práctica y 20% teoría, y no al revés como solemos hacer muchos al inicio. Cada cosa que leas la tienes que usar 20 veces antes de leer la siguiente. Si no, se te acumulan una cantidad de conceptos en la cabeza que no puedes plasmar. Se te olvidan otras, mezclas varias...