Trato de hacer un programa que inserte 10 números, todos mayores a 1000.me los sume y muestre los numeros mayores a 5000
Por el momento no sé como hacer para que me muestre los numeros mayores a 5000
Llevo esto del programa
int[] numero = new int[10];
int suma;
int cont;
for (cont = 0; cont <= 9; cont++)
{
Console.Write("Introduce el dato numero {0}: ", cont + 1);
numero[cont] = int.Parse(Console.ReadLine());
}
suma = 0;
for (cont = 0; cont <= 9; cont++)
suma += numero[cont];
Console.WriteLine("Su suma es {0}", suma);
Console.WriteLine();
if (numero[cont] > 5000)
{
Console.WriteLine("{0}", numero);
Console.ReadLine();
}
Console.ReadLine();
No me marca ningun error, pero al momento de ejecutarlo ya me marca el error
Alguna sugerencia?
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