sumowanie wartości w wierszach i kolumnach + sprawdzenie powtórzeń

0

Witam.
Robię zadanie, w którym mam zsumować wartości dla każdej kolumny i wiersza a następnie sprawdzić czy zsumowana wartość jednej z kolumn powtórzyła się dla któregoś z wierszy.
Na chwilę obecną zatrzymałem się w miejscu porównania kolumn i wierszy, ponieważ mój kod sprawdza jedynie kolumny i wiersze o tym samym numerze. Czy aby móc je swobodnie porównywać ze sobą muszę utworzyć tabele z tymi wartościami czy da się to zrobić w środku mojej pętli?

import static java.lang.Math.*;
public class Program
{
	public static void main (String[] args)
	{
		int[][] tab;
		tab = new int[5][5];
		
		//generowanie wartosci do tabeli
		for (int i=0; i<tab.length; i++){	
			for(int j=0; j<tab.length; j++)
				tab[i][j] = ((int)(random()*10));
		}
		
		//wyswietlenie tabeli
		for (int i=0; i<tab.length; i++){
			for (int j = 0; j<tab.length; j++)
				System.out.print(tab[i][j]+" ");
				System.out.println();			
		}
		System.out.println();
		System.out.println();
		
		//sumowanie wartosci w wierszach i kolumnach
		System.out.println("sumowanie wartosci w wierszach i kolumnach");
		System.out.println();
		
		for (int i=0; i<tab.length; i++){
			int wiersz = tab[i][0];
			int kolumna = tab[0][i];
			for(int j=1; j<tab.length; j++){
				wiersz +=tab[i][j];
				kolumna +=tab[j][i];
			}
			System.out.println("wiersz nr "+(i+1)+" wynosi "+wiersz);
			System.out.println("kolumna nr "+(i+1)+" wynosi "+kolumna);
			System.out.println();
			if (wiersz == kolumna)
				System.out.println("kolumna "+(i+1)+"oraz wiersz "+(i+1)+"sa rowne");

		}	
	}
}	
1

Zależy od co dokładnie należy zrobić: wystarczy informacja, że któraś suma się powtarza, czy też musisz podać pozycje wiersza(wierszy) i kolumny(kolumn). Jeśli to drugie, to musisz utworzyć pomocnicze tablice.

0

Ok. Zrobiłem to dla tabel i tu nie ma żadnego problemu, i wszystko działa wyświetlając poprawne dane/wartości, ale nie bardzo wiem jak się zabrać za sprawdzenie czy po prostu doszło do powtórzenia wartości bez ich użycia.

import static java.lang.Math.*;
public class Program
{
	public static void main (String[] args)
	{
		int[][] tab;
		tab = new int[5][5];
		
		//generowanie wartosci do tabeli
		for (int i=0; i<tab.length; i++){	
			for(int j=0; j<tab.length; j++)
				tab[i][j] = ((int)(random()*10));
		}
		
		//wyswietlenie tabeli
		for (int i=0; i<tab.length; i++){
			for (int j = 0; j<tab.length; j++)
				System.out.print(tab[i][j]+" ");
				System.out.println();			
		}
		System.out.println();
		System.out.println();
		
		//sumowanie wartosci w wierszach i kolumnach
		System.out.println("sumowanie wartosci w wierszach i kolumnach");
		System.out.println();
		
		//inicjalizacja tabel dla zsumowanych wartosci kolum i wierszy
		int[] kolumny;
		int[] wiersze;
		kolumny = new int[tab.length];
		wiersze = new int[tab.length];
		
		//wyswietlenie zsumowanych wartosci dla poszczegolnych kolumn i wierszy
		for (int i=0; i<tab.length; i++){
			int wiersz = tab[i][0];
			int kolumna = tab[0][i];
			for(int j=1; j<tab.length; j++){
				wiersze[i] = wiersz +=tab[i][j];
				kolumny[i] = kolumna +=tab[j][i];		
			}
			System.out.println("wiersz nr "+(i+1)+" wynosi "+wiersz);
			System.out.println("kolumna nr "+(i+1)+" wynosi "+kolumna);
			System.out.println();
		}
		
		//sprawdzenie ktory wiersz i ktora kolumna sie powtorzyly
		for(int k = 0; k< tab.length; k++){
				for(int l = 0; l<tab.length; l++)
					if(wiersze[k] == kolumny[l])
					System.out.println("wiersz "+(k+1)+" jest rowny kolumnie "+(l+1));
			}
	}
}	
0

jak się zabrać za sprawdzenie czy po prostu doszło do powtórzenia wartości bez ich użycia

Nie mam pojęcia o co pytasz..

0
bogdans napisał(a):

Zależy od co dokładnie zrobić: wystarczy informacja, że któraś suma się powtarza, czy też musisz podać pozycje wiersza(wierszy) i kolumny(kolumn). Jeśli to drugie, to musisz utworzyć pomocnicze tablice.

Zakręciłem może trochę, ale chodziło mi teraz właśnie o tę pierwszą część Twojego posta. Zrozumiałem przynajmniej, że to da się sprawdzić bez użycia tabel pomocniczych. Wcześniej program mi to sprawdzał, ale tylko na wartości w tej samej kolumnie i tym samym wierszu.

Pozdrawiam,

1

Przesadziłem trochę, jedną dodatkową tablicę (kolekcję) trzeba utworzyć.

0

A no to wszystko jasne. Z jedną tablicą to bez problemu. Dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1