Buenas....
tengo el siguiente código:
import java.io.*;
public class CMediana {
public static void main(String[]args)
{
int temp = 0;
int i = 0;
int nElementos = 0;
final char eof = (char)-1;
do{
System.out.print("Cuántos elementos tendrá la serie? ");
nElementos = Leer.datoInt();
}while(nElementos < 1);
int []m = new int [nElementos];
System.out.println("Introduzca una serie de números");
System.out.println("Para salir pulse [Ctrl][z]");
do{
System.out.print("Número " + (i+1) + ": ");
m[i] = Leer.datoInt();
i++;
}while(i < m.length && m[i] != eof);
}
}
La clase Leer es una clase creada para leer los datos de tipo "int".
El problema es que cuando puslo Ctrl + z el resultado es el siguiente (por ejemplo):
Cuántos elementos tendrá la serie? 6
Introduzca una serie de números
Para salir pulse [Ctrl][z]
Número 1: 23
Número 2: 54
Número 3: 2
Número 4: Número 5: Número 6:
El resultado que me gustaría que fuese al pular la secuencia de salida del programa es el siguiente:
Cuántos elementos tendrá la serie? 6
Introduzca una serie de números
Para salir pulse [Ctrl][z]
Número 1: 23
Número 2: 54
Número 3: 2
Número 4:
¿Alguien me puede ayudar por favor??? :)
CitarNúmero 4: Número 5: Número 6:
Por eso que te imprime, pienso que te hace falta "\n" (nueva línea) solo que no sé bien en donde.
Cómo has logrado que el programa termine?? (ctrl+z)?? como haces eso??
(Creo que eso requiere programacion orientada por eventos, en este caso seria al pulsar las teclas Control+z).
De todos modos hice esto espero que sirva de algo. Modifiqué un poco tu clase ;D
import java.io.*;
public class CMediana {
public static void main(String[]args)throws IOException
{
BufferedReader B = new BufferedReader(new InputStreamReader(System.in));
int temp = 0;
int i = 0;
int nElementos = 0;
final char z = (char)122;
do{
System.out.print("Cuántos elementos tendrá la serie? ");
String e = B.readLine();
if(esEntero(e))
nElementos = Integer.parseInt(e);
}while(nElementos < 1);
int []m = new int [nElementos];
System.out.println("Introduzca una serie de números");
System.out.println("Para salir pulse [Ctrl][z]");
do{
System.out.print("Número " + (i+1) + ": ");
String c = B.readLine();
if(esEntero(c))
{
m[i] = Integer.parseInt(c);
}
else if(c.charAt(0)==z || !esEntero(c) ){
for(int j=i+1; j<m.length; j++)
System.out.println("Número " + (j+1) + ": ");
i = m.length;
}
i++;
}while(i < m.length && m[i] != z);
}
public static boolean esEntero(String c)
{
try
{
Integer.parseInt(c);
return true;
}catch(Exception e)
{
return false;
}
}
}
Bueno en este caso reconoce la z o cualquier caracter(si asi lo deseas). Y al hacer esto te queda así.
Cuántos elementos tendrá la serie? 6
Introduzca una serie de números
Para salir pulse [Ctrl][z]
Número 1: 1
Número 2: 2
Número 3: z
Número 4:
Número 5:
Número 6:
Process completed.
Saludos