Tienes que pasarle el largo de la función al array, porque el sizeof en la función no te vale, sin embargo si te da el valor correcto dentro del ámbito en el que fue declarado el array. Bueno aquí tienes el código con esa modificación:
#include <stdio.h>
#include <string.h>
// Exercise 9-5: Write a function that returns the maximum value of an array of
// numbers.
int maximo(int numeros[], int index)
{
int i = 0;
int numTotal = 0; // index into the string
int numMaximo = 0;
numMaximo = numeros[0];
for (i = 0; i < index ; ++i)
{
if (numMaximo <= numeros[i])
numMaximo = numeros[i];
printf("de momento es %d\n", nummaximo
); }
return numMaximo;
}
int main(int argc, char *argv[])
{
int bingo[] = {1,2,3, 4, 4, 4, 4, 4, 5, 4, 66, 3, 4, 3, 2, 67,2};
int index = sizeof (bingo) / sizeof (bingo[0]);
printf("##El total de numeros en bingo es de: %d\n", index
);
printf("El valor maximo es %d\n", maximo
(bingo
,index
));
return (0);
}
En C++11 puedes hacer esto:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int bingo[] = {1, 2, 3, 4, 4, 4, 4, 4, 5, 4, 66, 3, 4, 3, 2, 67, 2};
int maxNum(0);
for(auto ¤tNum : bingo)
if(currentNum > maxNum)
maxNum = currentNum;
cout << "The maximum value is: " << maxNum;
return (0);
}
¡Un saludo!