Cuando formules una pregunta de programación donde te da un error, como mínimo trata de
mencionar el tipo de excepción exacta que te muestra el compiler y la linea donde ocurre, es un dato esencial para ahorrarle tiempo a los demás, al ayudarte y analizar el código.
Tienes un Array de 10 elementos y en .Net los índices están basados en Cero por lo que el rango accesible de índices para ese Array es
0-9, pero el valor de
cont es 10, esto causa que en la condicional
if (numero[cont] > 5000) se exceden los límites posibles del Array al intentar acceder a un elemento inexistente con ese índice
10.
Te sugiero hacerlo de la siguiente manera:
int[] values
= new int[10]; int sum = 0;
for (int index = 0; index <= (values.Length - 1); index++) {
Console.Write("Introduce el valor [{0}]: ", index + 1);
values[index] = int.Parse(Console.ReadLine());
}
Console.WriteLine();
for (int index = 0; index <= (values.Length - 1); index++) {
sum += values(index);
}
Console.WriteLine("La suma de valores es: {0}", sum);
Console.WriteLine();
Console.WriteLine("Valores mayores de 5.000:", sum);
foreach (int value in values) {
if ((value > 5000)) {
Console.WriteLine("{0}", value);
}
}
Console.ReadLine();
Si no se trata de ningún ejercicio, entonces te sugiero usar LINQ para simplificar el código:
int[] values
= new int[10];
for (int index = 0; index <= (values.Length - 1); index++) {
Console.Write("Introduce el valor [{0}]: ", index + 1);
values[index] = int.Parse(Console.ReadLine());
}
Console.WriteLine();
Console.WriteLine("La suma de valores es: {0}", values.Sum());
Console.WriteLine();
Console.WriteLine("Valores mayores de 5.000:");
Console.WriteLine(string.Join(Environment.NewLine, from value in values where value > 5000 select value));
Console.ReadLine();
Saludos