Ayuda con este codigo
Publicado por Rodrigo (1 intervención) el 17/02/2008 17:53:22
Saludos a todos, soy nuevo en esto de la programacion en Java, necesito un programa que imprima el numero de frecuencias de un numero, es decir cuantas veces se repite. Los numeros se van ingresando a un array, bueno el codigo es el siguiente:
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class Frecuencias {
public static void main(String[] args) {
// TODO Auto-generated method stub
int array[] = new int[10];
int array2[] = new int[10];
int valor, contador, contador2,contador3,contador4;
String v = null;
String salida = "Valor Frecuencia ";
for(contador =0;contador<array.length;contador++){
v = JOptionPane.showInputDialog("Intrduzca el valor: "+ contador);
valor = Integer.parseInt(v);
array[contador] = valor;
}
for(contador2=0;contador2<array.length;contador2++){
for(contador3=0;contador3<array.length;contador3++){
if(array[contador3]==array[contador2])
array2[contador2]+=1;
}
}
for(contador4=0;contador4<array.length;contador4++){
salida += array[contador4] + " " + array2[contador4] + " ";
}
JTextArea outputarea = new JTextArea();
outputarea.setText(salida);
JOptionPane.showMessageDialog(null, outputarea,"Arreglos" , JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
El problema es que al imprimir los resultados en pantalla me salen los numeros repetidos y no e encontrado la forma de solo mostrar el numero una sola vez.
Valor Frecuencia
1 4
1 4
1 4
1 4
2 2
2 2
5 1
6 3
6 3
6 3
Lo que necesito que imprima es:
Valor Frecuencia
1 4
2 2
5 1
6 3
Gracias por su ayuda.
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class Frecuencias {
public static void main(String[] args) {
// TODO Auto-generated method stub
int array[] = new int[10];
int array2[] = new int[10];
int valor, contador, contador2,contador3,contador4;
String v = null;
String salida = "Valor Frecuencia ";
for(contador =0;contador<array.length;contador++){
v = JOptionPane.showInputDialog("Intrduzca el valor: "+ contador);
valor = Integer.parseInt(v);
array[contador] = valor;
}
for(contador2=0;contador2<array.length;contador2++){
for(contador3=0;contador3<array.length;contador3++){
if(array[contador3]==array[contador2])
array2[contador2]+=1;
}
}
for(contador4=0;contador4<array.length;contador4++){
salida += array[contador4] + " " + array2[contador4] + " ";
}
JTextArea outputarea = new JTextArea();
outputarea.setText(salida);
JOptionPane.showMessageDialog(null, outputarea,"Arreglos" , JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
El problema es que al imprimir los resultados en pantalla me salen los numeros repetidos y no e encontrado la forma de solo mostrar el numero una sola vez.
Valor Frecuencia
1 4
1 4
1 4
1 4
2 2
2 2
5 1
6 3
6 3
6 3
Lo que necesito que imprima es:
Valor Frecuencia
1 4
2 2
5 1
6 3
Gracias por su ayuda.
Valora esta pregunta


0