1
votes

Comment stocker les résultats de la boucle for en tant que tableau en java? Existe-t-il une autre façon d'écrire ce code de manière ordonnée?

'' 'question de classe publique6a {

    System.out.println("Student 0 got " + sum + " Marks. ");
    System.out.println("Student 1 got " + sum1 + " Marks. ");
    System.out.println("Student 2 got " + sum2 + " Marks. ");
    System.out.println("Student 3 got " + sum3 + " Marks. ");
    System.out.println("Student 4 got " + sum4 + " Marks. ");
    System.out.println("Student 5 got " + sum5 + " Marks. ");
    System.out.println("Student 6 got " + sum6 + " Marks. ");
    System.out.println("Student 7 got " + sum7 + " Marks. ");

}

' ''

Il s'agit de stocker les réponses données par les élèves

        }

    }

C'est la clé pour vérifier les réponses, qu'elles soient correctes ou non.

                {int sum = 0, sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0, sum6 = 0, sum7 = 0;
                switch (i) {
                case 0:
                    sum++;
                    break;
                case 1:
                    sum1++;
                    break;
                case 2:
                    sum2++;
                    break;
                case 3:
                    sum3++;
                    break;
                case 4:
                    sum4++;
                    break;
                case 5:
                    sum5++;
                    break;
                case 6:
                    sum6++;
                    break;
                case 7:
                    sum7++;
                    break;

                }
               }

Il s'agit de vérifier les réponses en comparant les valeurs de deux tableaux.

    for (int i = 0; i < answers.length; i++) {
        for (int j = 0; j <= 9; j++) {
            if (answers[i][j] == key[j])  // comparing elements(Chars) of two arrays.

Ce code pour ajouter le no. de bonnes réponses données par les élèves.

    char[] key = { 'D', 'B', 'D', 'C', 'C', 'D', 'A', 'E', 'A', 'D' };

'''

    char[][] answers = { { 'A', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
            { 'D', 'B', 'A', 'B', 'C', 'A', 'E', 'E', 'A', 'D' },
            { 'E', 'D', 'D', 'A', 'C', 'B', 'E', 'E', 'A', 'D' },
            { 'C', 'B', 'A', 'E', 'D', 'C', 'E', 'E', 'A', 'D' },
            { 'A', 'B', 'D', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
            { 'B', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
            { 'B', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
            { 'E', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D' }, };

'''

Ceci est pour imprimer le résultat des élèves.

public static void main(String[] args) {

}


0 commentaires

3 Réponses :


1
votes

Vous déclarez la ligne suivante avant de basculer dans chaque boucle, rendant ainsi toutes les sommes nulles à chaque fois, donc vous obtiendrez la réponse finale 0 ou 1. Pour obtenir un résultat correct, supprimez et ajoutez cette ligne avant de commencer pour la boucle aussi vous pouvez simplement créer int [] sum = new int [8] pour stocker dans le tableau comme sum [i] au lieu de sumi comme ci-dessous.

int sum = 0, sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0, sum6 = 0, sum7 = 0;


0 commentaires

1
votes

Que diriez-vous d'utiliser des flux:

Student Nr 1 has 7 correct answers
Student Nr 2 has 6 correct answers
Student Nr 3 has 5 correct answers
Student Nr 4 has 4 correct answers
Student Nr 5 has 8 correct answers
Student Nr 6 has 7 correct answers
Student Nr 7 has 7 correct answers
Student Nr 8 has 7 correct answers

produit ces résultats:

    char[] correctAnswers = { 'D', 'B', 'D', 'C', 'C', 'D', 'A', 'E', 'A', 'D' };
    char[][] studentAnswers = { { 'A', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
            { 'D', 'B', 'A', 'B', 'C', 'A', 'E', 'E', 'A', 'D' },
            { 'E', 'D', 'D', 'A', 'C', 'B', 'E', 'E', 'A', 'D' },
            { 'C', 'B', 'A', 'E', 'D', 'C', 'E', 'E', 'A', 'D' },
            { 'A', 'B', 'D', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
            { 'B', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
            { 'B', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
            { 'E', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D' }, };

    IntStream.range(0, studentAnswers.length).forEach(i ->
        System.out.println("Student Nr " + (i+1) + " has " + 
                IntStream.range(0,correctAnswers.length).filter(j -> studentAnswers[i][j] == correctAnswers[j]).count()
       + " correct answers"));


0 commentaires

2
votes

Vous pouvez créer un tableau int pour enregistrer toutes les notes pour les élèves

Student 1 got 7 Marks.
Student 2 got 6 Marks.
Student 3 got 5 Marks.
Student 4 got 4 Marks.
Student 5 got 8 Marks.
Student 6 got 7 Marks.
Student 7 got 7 Marks.
Student 8 got 7 Marks.

résultat:

public static void main(String[] args) {
     char[][] answers = { 
          { 'A', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
          { 'D', 'B', 'A', 'B', 'C', 'A', 'E', 'E', 'A', 'D' },
          { 'E', 'D', 'D', 'A', 'C', 'B', 'E', 'E', 'A', 'D' },
          { 'C', 'B', 'A', 'E', 'D', 'C', 'E', 'E', 'A', 'D' },
          { 'A', 'B', 'D', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
          { 'B', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
          { 'B', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
          { 'E', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D' }
    };

    char[] key = { 'D', 'B', 'D', 'C', 'C', 'D', 'A', 'E', 'A', 'D' };

    int[] studentsMarks = new int[answers.length];

    for (int i = 0; i < answers.length; i++) {
      for (int j = 0; j < answers[i].length; j++) {
        if (answers[i][j] == key[j]) {
          studentsMarks[i] += 1;
        }
      }

      System.out.println("Student "+ (i + 1) + " got " + studentsMarks[i] + " Marks.");
    }
}


0 commentaires