English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Todas las categorías

yo estoy empezando a programar en java,tengo que hacer un vector que contenga numeros reales,y un metodo para que se despliegue en pantalla el numero mayor,escribi el codigo y compila bien,pero me da un error de ejecucion, les dejo el codigo a ver si alguien que sepa de java me puede decir el error porq yo no me doy cuenta.
import java.util.*;
public class VectorReales
{
public static void main (String [] args)
{
Vector vec= new Vector();
vec.addElement("1");
vec.addElement("2");
vec.addElement("3");

for (int i=0;i {
Double aux =(Double) vec.get(i);


}
double aux=0;
for (int i=1; i if (i > aux)
aux = i;
System.out.println(aux);
}

}
la excepcion que me aparece cuando compilo es "ClassCastException"
bueno,muchas gracias!!

2007-06-01 14:57:59 · 2 respuestas · pregunta de Anonymous en Ordenadores e Internet Programación y Diseño

2 respuestas

Hola Lokita...

No soy un super experto, pero vi algunas cosas.

La variable aux solo la tienes que declarar como double al inicio.

Luego, 'vec' es de tipo vector, que simplemente son objetos pegados. Para poderlo asignar o comparar contra un double, necesitas primero pasarlo a string, y después adouble:

aux =Double.parseDouble
(vec.get(i).toString());

En el primer for() simplemente recorres la lista, pero no haces nada. 'aux' va a tomar todos los valores del vector, pero no lo comparas.

En el segundo for, que es donde comparas, tienes que comparar igual el valor dentro de 'vec' en lugar del contador 'i'.

Declaras aux = 0.00 por que es double.
Y se te olvidó en el for en contemplar el primer elemento. Acuerdate que en Java, los arreglos, vectores y listas empiezan con el elemento 0, no con el 1.


Aquí esta el programa sin el primer for y con las correcciones...

------------------------------------------
import java.util.*;
public class Main
{
public static void main (String [] args)
{
Vector vec= new Vector();
vec.addElement("10");
vec.addElement("2");
vec.addElement("3");

Double aux;
aux = 0.00;
for (int i=0; i if (Double.parseDouble(
vec.get(i).toString()) > aux)
aux = Double.parseDouble
(vec.get(i).toString());
System.out.println(aux);
}

}
------------------------------------

Disculpa por dividir la linea que trae el Double.parse...

pero answers no me dejaba incluir todo en la misma línea....

Suerte!

2007-06-01 17:19:25 · answer #1 · answered by Roberto 7 · 1 0

el error es que estas metiendo "cadenas" y no reales 2.0
eso es lo que pasa .. estoy seguro de que el error es este.

Exception in thread "main" java.lang.ClassCastException: java.lang.Integer

o este

Exception in thread "main" java.lang.ClassCastException: java.lang.Integer

lo que tienes que hacer es
-poner valores reales

o

-hacer lo que contesto roberto
que es pasar los datos que has metido entre "" que es un String pasarlos a double... con el parse

suerte

2007-06-02 00:22:39 · answer #2 · answered by Mauricio C 2 · 0 0

fedest.com, questions and answers