El código lo puedes optimizar de forma que en el mismo bucle de entrada de datos evalúe si la entrada en cada momento es mayor que la anterior, y la posición en el array.
Este puede ser una forma de resolverlo suponiendo que los números serán siempre mayor o igual a 0 (lo puedes adaptar para números negativos)
En pseudocódigo/diagrama de flujo cutre):
Valor inicial del numero mayor = 0;
Posicion i en el array de dicho valor = 0;
Posicion j en el array de dicho valor = 0;
Bucle:
Introduzco valor;
Asigno valor al array
¿Mayor que valor inicial (variable mayor)?
Si:
Ahora variable mayor vale el valor de esa entrada
Ahora Posicion i y Posicion j valen la i y la j del array
No:
No hago nada
Es como lo tienes tú, solo que el segundo bucle que tienes lo puedes hacer en el primero y ahorrarte recorrer otra vez el array. Si además, cunado haces:
Código C++:
Ver original........
if (matriz[i][j]>=mayor)
{
mayor=matriz[i][j];
posicion_i = i;
posicion_j = j;
}
......
Pues no sólo obtienes el valor mayor sino su posición en el array