• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Tablice wielowymiarowe - obliczenie i zwrot w postaci tablicy sumy elementów w poszczególnych kolumnach

Cloud VPS
0 głosów
340 wizyt
pytanie zadane 10 listopada 2018 w Java przez Tom_Ja Dyskutant (7,970 p.)
zamknięte 10 listopada 2018 przez Tom_Ja

Mam tablicę niekwadratową. W jaki sposób mam stworzyć tablicę sumy elementów, która będzie zliczała sumę wyrazów w poszczególnych kolumnach?

 

Napisałem coś takiego:

	public int SumaKolumny() {
		int [] output = new int[tab[0].length];
		for (int i = 0; i<tab[0].length; i++) {
		for (int j = 0; j<tab.length; j++) {
            output[j] += tab[j];
		}
			}
		System.out.println(output);
		}

Ale jest problem z tą linijką:

            output[j] += tab[j];

Wyświetla:

The operator += is undefined for the argument type(s) int, int[]

Jak to naprawić?

komentarz zamknięcia: odp uzyskana

1 odpowiedź

+1 głos
odpowiedź 10 listopada 2018 przez RafalS VIP (122,820 p.)
wybrane 10 listopada 2018 przez Tom_Ja
 
Najlepsza
        int tab[][] = {{1,2,3},{4,5,6}};
        int column_sums[] = new int[tab[0].length];
        for (int i = 0; i<tab.length; i++) {
            for (int j = 0; j<tab[i].length; j++) {
                column_sums[j] += tab[i][j];
            }
        }
        System.out.println(Arrays.toString(column_sums));

EDIT: co do dodanego kodu to probujesz przypisać tablice do inta.

Naprawic mozesz tak:

output[j] += tab[j][i];

 

komentarz 10 listopada 2018 przez Tom_Ja Dyskutant (7,970 p.)
Jak powinienem to naprawić?
komentarz 10 listopada 2018 przez RafalS VIP (122,820 p.)

Za bardzo gwałcimy przycisk edytuj post :D

Edytowałem 2 razy w odpowiedzi na Twoje edycje :D

Co do naprawy to najszybciej skopiowac to co napisałem, a najlepiej zrozumieć problem.

Nie można zrobić tak:

int t[] = {1,2,3};
int x = t;

 

komentarz 10 listopada 2018 przez Tom_Ja Dyskutant (7,970 p.)

@RafalS,

	public void SumaKolumny() {
		int [] output = new int[tab[0].length];
		for (int i = 0; i<tab[0].length; i++) {
		for (int j = 0; j<tab.length; j++) {
            output[j] += tab[j][i];
		}
			}
		System.out.println(output);
		}

Mam takie coś, i wyświetla

[I@6d06d69c

...

komentarz 10 listopada 2018 przez RafalS VIP (122,820 p.)
System.out.println(output);

bo wypisujesz referencje. Jak chcesz zawartosc tablicy to Arrays.toString(output);

komentarz 10 listopada 2018 przez Tom_Ja Dyskutant (7,970 p.)

Próbowałem, ale wyświetla:

    Arrays cannot be resolved
 

	public void SumaKolumny() {
		int [] output = new int[tab[0].length];
		for (int i = 0; i<tab[0].length; i++) {
		for (int j = 0; j<tab.length; j++) {
            output[j] += tab[j][i];
		}
			}
		System.out.println(Arrays.toString(output));
		}


EDIT: trzeba dołączyć: import java.util.Arrays;

 

Dzięki za pomoc!

komentarz 10 listopada 2018 przez RafalS VIP (122,820 p.)
W czym Ty to piszesz, że IDE Ci nie podpowiedziało, że trzeba zaimportować java.util.Arrays ?

Podobne pytania

0 głosów
3 odpowiedzi 612 wizyt
pytanie zadane 10 listopada 2018 w Java przez Tom_Ja Dyskutant (7,970 p.)
0 głosów
0 odpowiedzi 516 wizyt
pytanie zadane 25 listopada 2019 w C i C++ przez Hubertius Bywalec (2,970 p.)
0 głosów
1 odpowiedź 216 wizyt
pytanie zadane 30 kwietnia 2020 w C i C++ przez Dolfro Nowicjusz (160 p.)

93,482 zapytań

142,414 odpowiedzi

322,761 komentarzy

62,894 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...