Quelqu'un peut-il m'aider à réparer ce code Java? [fermé]


J'ai cette affectation suivante chaque fois que j'ai essayé de corriger une erreur, cela m'a donné erreur sur erreur.

Étant donné le tableau suivant de 5 lignes et 5 colonnes, qui contient distances entre les villes:

Notez que les noms de ville ne sont pas dans le tableau; le tableau contient les entrées numériques seulement, qui donnent la distance entre les deux villes représentées par la ligne et la colonne.

  1. Écrivez les instructions pour initialiser une distance de tableau avec le kilométrage les données ci-dessus.

  2. Écrivez les instructions pour imprimer le menu suivant, lire en deux numéros de ville, et imprimer la distance entre les deux villes:

Pour déterminer le kilométrage entre les villes, entrez les numéros de deux villes de la liste suivante: 1: Albany 4: NY 2: Boston 5: Phila 3: Hartford

Entrez vos numéros de ville:

* * Cas de test: Distance entre Albany et NY & & Distance entre Hartford et Phila

public class DistanceofCities {

private static final String keyboard = null;

public static void main(String[] args) {

    int [][] distance = {
            {0, 171, 115, 141, 240},
            {171, 0, 103, 194, 333},
            {115, 103, 0, 120, 235},
            {141, 194, 120, 0, 104},
            {240, 333, 235, 104, 0}

    };

    int mileage;
    int first = -1, second = -1;

       System.out.println("To determine the mileage between cities, enter the \n");
       System.out.println("numbers of two cities from the following list:\n");
       System.out.println("      1:  Albany           4:  NY\n");
       System.out.println("      2:  Boston           5:  Phila\n");
       System.out.println("      3:  Hartford\n\n");
       System.out.println("Enter your city numbers ==> ");
       first = keyboard.nextInt();
       second = keyboard.nextInt();
       mileage = distance[first-1][second-1];
       System.out.println("The distance between your two cities is ");
    }
}
Author: amudhan3093, 2014-03-11

4 answers

L'utilisation devrait définir le clavier.Utilisez la classe Scanner.

Essayez ceci importer java.util.Scanner;

public class DistanceofCities {



public static void main(String[] args) {

    int [][] distance = {
            {0, 171, 115, 141, 240},
            {171, 0, 103, 194, 333},
            {115, 103, 0, 120, 235},
            {141, 194, 120, 0, 104},
            {240, 333, 235, 104, 0}

    };

    int mileage;
    int first = -1, second = -1;
       Scanner keyboard= new Scanner(System.in);
       System.out.println("To determine the mileage between cities, enter the \n");
       System.out.println("numbers of two cities from the following list:\n");
       System.out.println("      1:  Albany           4:  NY\n");
       System.out.println("      2:  Boston           5:  Phila\n");
       System.out.println("      3:  Hartford\n\n");
       System.out.println("Enter your city numbers ==> ");
       first = keyboard.nextInt();
       second = keyboard.nextInt();
       mileage = distance[first-1][second-1];
       System.out.println("The distance between your two cities is "+ mileage);
    }
}
 -1
Author: amudhan3093, 2014-03-11 05:52:51

Voici le code fixe; Explication ci-dessous:

import java.util.Scanner;

public class DistanceOfCities {

    public static void main(String[] args) {

        Scanner keyboardReader = new Scanner(System.in);

        int[][] distance = {
                {0, 171, 115, 141, 240},
                {171, 0, 103, 194, 333},
                {115, 103, 0, 120, 235},
                {141, 194, 120, 0, 104},
                {240, 333, 235, 104, 0}

        };

        int mileage;
        int first = -1, second = -1;

        System.out.println("To determine the mileage between cities, enter the \n");
        System.out.println("numbers of two cities from the following list:\n");
        System.out.println("      1:  Albany           4:  NY\n");
        System.out.println("      2:  Boston           5:  Phila\n");
        System.out.println("      3:  Hartford\n\n");
        System.out.println("Enter your city numbers ==> ");
        first = keyboardReader.nextInt();
        second = keyboardReader.nextInt();
        mileage = distance[first - 1][second - 1];
        System.out.println("The distance between your two cities is " + mileage + ".");

    }

}

Fondamentalement, pour lire l'entrée au clavier de l'utilisateur, vous avez besoin d'un objet Scanner :

// This creates the scanner:
Scanner keyboardReader = new Scanner(System.in);

Les erreurs que vous voyiez étaient probablement dues au fait que vous essayiez d'appeler la méthode nextInt () à partir d'une référence d'objet null (c'est-à-dire pointeur vers rien):

// Here, you defined keyboard as being null:
private static final String keyboard = null;

// Then, your code attempts to call a method from no object:
first = keyboard.nextInt();

Enfin, n'oubliez pas d'ajouter le kilométrage de la chaîne que vous obtenez à la fin:

// Add mileage:
 System.out.println("The distance between your two cities is " + mileage + ".");
 6
Author: Ricardo Lima, 2014-04-08 18:09:46

Il semble que vous n'imprimiez pas le kilométrage à la fin. Essayez de changer la dernière ligne de votre code:

System.out.println("The distance between your two cities is "+mileage);
 1
Author: Taj Morton, 2014-03-11 05:34:54

Changer le code comme,

public static void main(String[] args) {

            int [][] distance = {
                    {0, 171, 115, 141, 240},
                    {171, 0, 103, 194, 333},
                    {115, 103, 0, 120, 235},
                    {141, 194, 120, 0, 104},
                    {240, 333, 235, 104, 0}

            };

            int mileage;
            int first = -1, second = -1;
            Scanner in = new Scanner(System.in);
               System.out.println("To determine the mileage between cities, enter the \n");
               System.out.println("numbers of two cities from the following list:\n");
               System.out.println("      1:  Albany           4:  NY\n");
               System.out.println("      2:  Boston           5:  Phila\n");
               System.out.println("      3:  Hartford\n\n");
               System.out.println("Enter your city numbers ==> ");
               first = in.nextInt();
               second = in.nextInt();
               mileage = distance[first-1][second-1];
               System.out.println("The distance between your two cities is "+mileage);
            }
 0
Author: NaaN, 2014-03-11 05:45:38