/ / Wypełnianie Java tablicy 2D - java, tablice, pętla for, tablica wielowymiarowa

Wypełnianie Java tablicy 2D - Java, tablice, pętla for, tablica wielowymiarowa

Muszę utworzyć tablicę 2d, która może czytać wlegitymacje studenckie 50 studentów i każdy z ich 7 znaków przedmiotowych. Wymyśliłem sposób na przechowywanie znaków przedmiotowych, ale nie jestem pewien, jak przechowywać ID uczniów. Oto kod do tej pory.

public static void main(String[] args)
{
double mark;
double[][] studs = new double[50][7];

Scanner fromKeyboard = new Scanner(System.in);

for (int studentNo = 0; studentNo < 3; studentNo++) {
System.out.println("enter student ID number for student " + studentNo);

for (int moduleNo = 0; moduleNo < 2; moduleNo++) {
System.out.println("Enter users mark for module " + moduleNo);
mark = fromKeyboard.nextDouble();
studs[studentNo][moduleNo] = mark;
}
}
}

Odpowiedzi:

1 dla odpowiedzi № 1

Masz tylko jedną tablicę jednego prymitywnego typu, ale masz dwie informacje.

Dwie proste opcje to

1) Użyj innej tablicy do przechowywania identyfikatorów

2) (Lepsze rozwiązanie IMO) Utwórz własne Student klasy i zdefiniuj tablicę Student[] (Uczeń powinien zawierać pole na tablicę ocen)


1 dla odpowiedzi nr 2

Możesz użyć tablicy [n] [0] do przechowywania identyfikatora studenta.

To powinno działać:

public static void main(String[] args)
{
double mark = 0d;
int id = 0;
double[][] studs = new double[50][8];

Scanner fromKeyboard = new Scanner(System.in);

for (int studentNo = 0; studentNo < 50; studentNo++) {
System.out.print("enter student ID number for student " + (studentNo + 1) + ":");
id = fromKeyboard.nextInt();
studs[studentNo][0] = id;
for (int moduleNo = 1; moduleNo < 8; moduleNo++) {
System.out.print("Enter mark of student " + id + " for module " + moduleNo);
mark = fromKeyboard.nextDouble();
studs[studentNo][moduleNo] = mark;
}
}

fromKeyboard.close();
}

UWAGI:

  • Jeśli nie możesz zmodyfikować oryginalnej tablicy lub musisz na przykład zapisać nazwisko studenta, możesz utworzyć nową tablicę do przechowywania identyfikatorów studentów.

    String[] studentsId = new String[50];
    int[] studentsId = new int[50];
    
  • pamiętaj, aby zamknąć zasoby podczas korzystania z niego: fromKeyboard.close();


0 dla odpowiedzi № 3

Kiedy zrozumiałem twoje pytanie poprawnie:

public static void main(String[] args)
{
double[][] studs = new double[50][8];

Scanner fromKeyboard = new Scanner(System.in);

for (int studentNo = 0; studentNo < 50; studentNo++) {
System.out.println("enter student ID number for student " + studentNo);
studs[studentNo][0] = fromKeyboard.nextDouble(); //save id
for (int moduleNo = 1; moduleNo < 8; moduleNo++) {
System.out.println("Enter users mark for module " + moduleNo);
studs[studentNo][moduleNo] = fromKeyboard.nextDouble(); // your 7 marks
}
}
}

0 dla odpowiedzi nr 4

Jesteś na dobrej drodze.

Nie czytasz ucznia Brak danych wejściowych. Musisz to przeczytać i umieścić w pierwszej komórce przed wewnętrzną pętlą. Następnie umieść wszystkie znaki w tym samym rzędzie obok niego. Zależy to od rodzaju legitymacji studenckiej, czy jest to ciąg znaków, czy liczba?

Ponadto, dlaczego ma 7 kolumn w tablicy i zapętla się tylko dwa razy dla ocen przedmiotów? Czy jest tu coś więcej do zrobienia. Jeśli nie, unikaj zajmowania miejsca.