Autor |
Mensaje |
7programador7
Nivel 2
Edad: 37
Registrado: 06 Abr 2011
Mensajes: 7
Ubicación: Jalisco
Carrera: Sistemas
|
|
Ok pero para saber cual es la posición en la que si hay número como lo debo hacer, porque el usar contadores me dira cuantos cumpen con cada condición pero no cuales.
Por ejemplo si hubiese 2 mayores a 100
Con los contadores yo sabría que mayores a 100 hay 2 números pero ¿como saber en que posición estan esos 2 números?, para imprimir únicamente esas posiciones del arreglo?
|
|
|
|
|
|
|
|
|
Kartlan
Nivel 5
Edad: 42
Registrado: 09 Ago 2005
Mensajes: 176
Ubicación: Once
Carrera: Informática
|
|
Siento como que se te están escapando conceptos como "que es un vector" y que es un "contador usado como índice de un vector" ...
Alternativa "guardo o no el vector de los valores de entrada"; ergo... ¿hace falta que leas y cargues todos los elementos a un vector auxiliar? o con directamente una vez leido cada elemento podes tirarlo en el vector correspondiente...
Si en los vectores "mayores", "rango", "menores" guardas elementos leidos con que sepas cuantos de cada vector son validos ya está. La opción de poner la posición del elemento en el otro vector tenes que hacer lo mismo, pero podes aprovechar de usar el valor "-1" para decir que hasta ahí llegó... ejemplo:
Código:
|
para n = 6; la x marca "basura".
leido = { 101, 30, 35, 1, 2, 200 }
mayores = { 101, 200, -1, x, x, x }
rango = { 30, 35, -1, x, x, x }
menores = { 1, 2, -1, x, x, x}
|
y si usas contadores en lugar de las x tendrias en algun lugar variables del estilo:
Código:
|
largo_mayores = 2;
largo_rango = 2;
largo_menores = 2;
|
Pura casualidad que el ejemplo quedo uniforme...
1. Si parte del enunciado se "se leen 10 números" todo bien con como recorrer el vector inicialmente.
2. Una alternativa es recorrer todo el vector 3 veces e imprimir solo los que cumplen la regla "mayores => solo si vector[i] > 100 imprimo" ... etcétera.
3. Otra forma es hacer lo de los 3 vectores adicionales y agregar un contador para cada uno para saber cuantos lugares están ocupados de cada uno.
|
|
|
|
|
|
|
|
|
7programador7
Nivel 2
Edad: 37
Registrado: 06 Abr 2011
Mensajes: 7
Ubicación: Jalisco
Carrera: Sistemas
|
|
Hola
Haciendo algunas correcciones creo el código sería este:
Código:
|
for (i = 1; i < 11; i++)
{
if (Vec[i] > 100)
{
Mayores[i] = Vec[i];
cont_mayores++;
}
else
if (Vec[i] >= 30 && Vec[i] <= 50)
{
Rango[i] = Vec[i];
cont_rango++;
}
else
if (Vec[i] < 30)
{
Menores[i] = Vec[i];
cont_menores++;
}
}
for (i = 1; i <= cont_mayores; i++)
System.out.print (Mayores[i]);
for (i = 1; i <= cont_rango; i++)
System.out.print (Rango[i]);
for (i = 1; i <= cont_menores; i++)
System.out.print (Menores[i]);
|
|
|
|
|
|
|
|
|
|
|
Ir a página Anterior 1, 2
|
Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro No podés responder a temas en este foro No podés editar tus mensajes en este foro No podés borrar tus mensajes en este foro No podés votar en encuestas en este foro No Podéspostear archivos en este foro No Podés bajar archivos de este foro
|
Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker365 Attacks blocked.
|
|
[ Tiempo: 0.2247s ][ Pedidos: 20 (0.1861s) ] |