toñonv
Bovino adicto
- Desde
- 26 Sep 2009
- Mensajes
- 704
- Tema Autor
- #1
Este metodo como otros varios nos dejaron de tarea investigarlos, ya tengo un buen de codigo, solo que me fastidia un error, si alguien pudiera ayudarme seria de gran ayuda para mi.
El metodo es el de Burbuja Mejorada y el error lo resalto en rojo, y me dice asi: Indice fuera de limites de la matriz.
de antemano GRACIAS por su tiempo.
CODIGO.
static UInt16 n;
static int[] numeros;
static void captura()
{
bool result = false;
while (result == false)
{
Console.Write("Cuantos números desea capturar: ");
result=UInt16.TryParse(Console.ReadLine(),out n);
}
numeros = new int[n];
Console.WriteLine("\nIntroduzca los números a ordenar: ");
int cont = 0;
while (cont < n)
{
Console.Write("{0}: ", cont + 1);
result = int.TryParse(Console.ReadLine(), out numeros[cont]);
if (result == true)
cont++;
else
Console.WriteLine("NO es un número entero.");
}
Console.WriteLine("Ha terminado de capturar los números.");
Console.ReadKey(true);
}
static void burbuja_mejorada()
{
int aux, i, j, cambio;
for (i = 0; i < (n - 1); i++)
{
cambio = 0;
for (j = 0; j <(n-i); j++)
{
if (numeros[j] > numeros[j + 1])
{
aux = numeros[j];
numeros[j] = numeros[j + 1];
numeros[j + 1] = aux;
cambio = 1;
}
}
if (cambio == 0)
break;
}
}
static void desplegar()
{
for (int cont = 0; cont < n; cont++)
Console.WriteLine("{0}: {1}", cont + 1, numeros[cont]);
Console.ReadKey(true);
}
El metodo es el de Burbuja Mejorada y el error lo resalto en rojo, y me dice asi: Indice fuera de limites de la matriz.
de antemano GRACIAS por su tiempo.
CODIGO.
static UInt16 n;
static int[] numeros;
static void captura()
{
bool result = false;
while (result == false)
{
Console.Write("Cuantos números desea capturar: ");
result=UInt16.TryParse(Console.ReadLine(),out n);
}
numeros = new int[n];
Console.WriteLine("\nIntroduzca los números a ordenar: ");
int cont = 0;
while (cont < n)
{
Console.Write("{0}: ", cont + 1);
result = int.TryParse(Console.ReadLine(), out numeros[cont]);
if (result == true)
cont++;
else
Console.WriteLine("NO es un número entero.");
}
Console.WriteLine("Ha terminado de capturar los números.");
Console.ReadKey(true);
}
static void burbuja_mejorada()
{
int aux, i, j, cambio;
for (i = 0; i < (n - 1); i++)
{
cambio = 0;
for (j = 0; j <(n-i); j++)
{
if (numeros[j] > numeros[j + 1])
{
aux = numeros[j];
numeros[j] = numeros[j + 1];
numeros[j + 1] = aux;
cambio = 1;
}
}
if (cambio == 0)
break;
}
}
static void desplegar()
{
for (int cont = 0; cont < n; cont++)
Console.WriteLine("{0}: {1}", cont + 1, numeros[cont]);
Console.ReadKey(true);
}