Hola:
Pues si, esta vez hay varios errores más graves de la cuenta.
Para empezar, has de definir el tamaño del array con un literal o con un valor constante.
Es decir, puedes hacer así:
O bien así:
Código C++:
Ver originalconst int valores=10;
int numeros[valores];
La ventaja de esta segunda forma es que valores, si bien es un valor de sólo consulta, al usarlo para recorrer el array, el día que quieras que valores valga 5, ya tienes cambiado el valor tanto aqui:
como aqui:
Por lo que el código es más mantenible. En general es mejor trabajar de la segunda forma, lo que pasa es que para estos ejercicios de apenas 20 líneas, no se ve la importancia real.
Respecto al error, la queja del compilador siempre ayuda, o directamente nos da la solución del problema. En este caso, declaras una variable
int i sin darle valor ni uso.
Fíjate que no es lo mismo esto:
Código C++:
Ver originalint i; //El copilador me dice en esta linea que esta el error
for (int i=0;i<valores;++i)
{
.........................
que esto:
Código C++:
Ver originalint i; //El copilador me dice en esta linea que esta el error
for (i=0;i<valores;++i)
{
...........................
En el primer caso, el "i" del bucle, se crea y define dentro del mismo, y muere cuando acabe el bucle. Eso en definitiva está haciendo que el
int i de fuera del bucle, no tenga nada que ver con el del bucle for. Así, el primer
int i es una variable aparte, sin definición, sin valor y sin uso. Por eso se queja.
De la segunda forma, el compilador asume que hay un
int i creado previamente, lo inicializa a 0, y lo usa para hacer el bucle. Por eso no daría error.
Y el último error es la forma de acceder a los valores, ya que has de acceder mediante el operador [].
Es decir:
Saludos