elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: [Aporte] Mejores practicas en Java


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Dudas Ejercicios java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dudas Ejercicios java  (Leído 420 veces)
Bertili

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Dudas Ejercicios java
« en: 13 Enero 2018, 13:13 »

Buenas,

Estaba haciendo un ejercicio en java sobre el numero kaprekar(seguro que os suena), y me sale "Run-time error" cunado entrego. Os dejo el codigo. Porque puede ser?

Gracias ;D :laugh:




package kaprekar;

import java.util.Scanner;

public class Kaprekar {

    public static void toArray(int n, int a[]) {
        int d = 1000;

        for (int i = 0; i < 4; i++) {
            a = n / d;
            n = n % d;
            d = d / 10;
        }
    }

    public static void Clasificarmayor(int a[]) {
        for (int i = 0; i <= 2; i++) {
            for (int j = i + 1; j <= 3; j++) {
                if (a < a[j]) {
                    int t;
                    t = a;
                    a = a[j];
                    a[j] = t;
                }
            }
        }
    }

    public static void Clasificarmenor(int a[], int b[]) {
        for (int i = 3; i >= 0; i--) {
            b[3 - i] = a;
        }
    }

    public static void Pasaranumero(int Menor, int a[], int d, int Mayor, int b[], int ret[]) {
        d = 1000;
        for (int i = 0; i <= 3; i++) {
            Mayor = Mayor + a * d;
            d = d / 10;
        }
        d = 1000;
        for (int i = 0; i <= 3; i++) {
            Menor = Menor + b * d;
            d = d / 10;
        }
        ret[0] = Mayor;
        ret[1] = Menor;
    }

    public static void Resta(int Mayor, int Menor, int ret[]) {
        ret[2] = ret[0] - ret[1];
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int ret[] = new int[3];
        int n, num;
        num = sc.nextInt();
        int con;
        int a[] = new int[4];
        int b[] = new int[4];
        int acon[] = new int[num];
        int Menor = 0;
        int Mayor = 0;
        int d = 1000;
        int q = 0;
        int x = num;

        do {
            con = 0;
            num--;
            n = sc.nextInt();
            while (n != 6174){
                toArray(n, a);
                Clasificarmayor(a);
                Clasificarmenor(a, b);
                Pasaranumero(Menor, a, d, Mayor, b, ret);
                Resta(Mayor, Menor, ret);
                n = ret[2];
                con++;
            }
            acon[q] = con;
            q++;
        } while (num != 0);
        int y = 0;
        while(x != 0) {
            System.out.println(acon[y]);
            x--;
            y++;
        }
    }

}


En línea

ThunderCls

Desconectado Desconectado

Mensajes: 215


CrAcKiNg 4 PaSsIoN


Ver Perfil WWW
Re: Dudas Ejercicios java
« Respuesta #1 en: 6 Febrero 2018, 17:45 »

Debes revisar el uso de los arrays en tu codigo, tus errores vienen dados por querer acceder a los valores de tu array de enteros "a" sin usar el subindice "a[index]"


En línea

-[ "…I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Dudas ejercicios de clase. « 1 2 »
Foro Libre
Noxors 14 2,175 Último mensaje 10 Febrero 2008, 14:22
por Noxors
Dudas con ejercicios de circuitos
Electrónica
Gm3z 0 863 Último mensaje 28 Diciembre 2012, 18:32
por Gm3z
Ejercicios JAVA
Ejercicios
Chuckie 2 1,197 Último mensaje 21 Agosto 2014, 04:37
por Chuckie
Ejercicios JAVA
Java
eda6 5 1,277 Último mensaje 31 Diciembre 2014, 10:43
por eda6
Ejercicios de Java
Java
SeñorX95 3 845 Último mensaje 3 Marzo 2015, 17:32
por engel lex
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines