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

Sprawdzenie programu i pomoc w znalezieniu błędu - Java

Object Storage Arubacloud
0 głosów
336 wizyt
pytanie zadane 13 listopada 2018 w Java przez mn130496 Gaduła (3,530 p.)

Witam 

Ostatnio na zajęciach dostałem za zadanie takie zadanie: Stworzyć tablicę 7 x 7 liczb całkowitych, wypełnić ją losowymi wartościami, następnie wyznaczyć dla każdej kolumny minimum i maksimum, najmniejszy oraz najwięszy element w tablicy, średnią arytmetyczną elementów tablicy, ilość elementów mniejszych oraz większych od średniej. Do nowej tablicy skopiować w odwrotnej kolejności zawartość tablicy tj. od ostatniego do pierwszego. Napisałem taki kod programu:

package zadania_lab4;
import java.util.Random;
public class zad_2 {
	public static void main(String[] args) {
		Random r = new Random();
		//deklaracja zmiennych
		int[][] tab = new int[7][7];
		int[][] odwrucona = new int [7][7];
		int największe_w_kolumnie_0=tab[0][0];
		int największe_w_kolumnie_1=tab[0][1];
		int największe_w_kolumnie_2=tab[0][2];
		int największe_w_kolumnie_3=tab[0][3];
		int największe_w_kolumnie_4=tab[0][4];
		int największe_w_kolumnie_5=tab[0][5];
		int największe_w_kolumnie_6=tab[0][6];
		int najmniejsze_w_kolumnie_0=tab[0][0];
		int najmniejsze_w_kolumnie_1=tab[0][1];
		int najmniejsze_w_kolumnie_2=tab[0][2];
		int najmniejsze_w_kolumnie_3=tab[0][3];
		int najmniejsze_w_kolumnie_4=tab[0][4];
		int najmniejsze_w_kolumnie_5=tab[0][5];
		int najmniejsze_w_kolumnie_6=tab[0][6];
		
		//zapełnienie tablicy losowymi liczbami 
		for(int i=0; i<tab.length; i++) {
			for(int j=0; j<tab[i].length; j++) {
				tab[i][j] = r.nextInt(51)+99;
			}
		}
		
		//Wyświetlenie zawartości tablicy
				for(int i=0; i<tab.length; i++) {
					for(int j=0; j<tab[i].length; j++) {
						System.out.print(tab[i][j] + " ");
					}
					System.out.println();
				}
				
		// Szukanie min i max w kolumnach
		for(int i=0;i<tab.length;i++)
			for(int j=0;j<1;j++) {
		  if(największe_w_kolumnie_0<tab[i][j])największe_w_kolumnie_0=tab[i][j];
			}
		System.out.println("Największa wartość w kolumnie 0 to: "+największe_w_kolumnie_0);
		
		for(int i=0;i<tab.length;i++)
			for(int j=1;j<2;j++) {
		  if(największe_w_kolumnie_1<tab[i][j])największe_w_kolumnie_1=tab[i][j];
			}
		System.out.println("Największa wartość w kolumnie 1 to: "+największe_w_kolumnie_1);
		
		for(int i=0;i<tab.length;i++)
			for(int j=2;j<3;j++) {
		  if(największe_w_kolumnie_2<tab[i][j])największe_w_kolumnie_2=tab[i][j];
			}
		System.out.println("Największa wartość w kolumnie 2 to: "+największe_w_kolumnie_2);
		
		for(int i=0;i<tab.length;i++)
			for(int j=3;j<4;j++) {
		  if(największe_w_kolumnie_3<tab[i][j])największe_w_kolumnie_3=tab[i][j];
			}
		System.out.println("Największa wartość w kolumnie 3 to: "+największe_w_kolumnie_3);
		
		for(int i=0;i<tab.length;i++)
			for(int j=4;j<5;j++) {
		  if(największe_w_kolumnie_4<tab[i][j])największe_w_kolumnie_4=tab[i][j];
			}
		System.out.println("Największa wartość w kolumnie 4 to: "+największe_w_kolumnie_4);
		
		for(int i=0;i<tab.length;i++)
			for(int j=5;j<6;j++) {
		  if(największe_w_kolumnie_5<tab[i][j])największe_w_kolumnie_5=tab[i][j];
			}
		System.out.println("Największa wartość w kolumnie 5 to: "+największe_w_kolumnie_5);
		
		for(int i=0;i<tab.length;i++)
			for(int j=6;j<7;j++) {
		  if(największe_w_kolumnie_6<tab[i][j])największe_w_kolumnie_6=tab[i][j];
			}
		System.out.println("Największa wartość w kolumnie 6 to: "+największe_w_kolumnie_6);
		
		for(int i=0;i<tab.length;i++)
			for(int j=0;j<1;j++) {
		  if(najmniejsze_w_kolumnie_0>tab[i][j])najmniejsze_w_kolumnie_0=tab[i][j];
			}
		System.out.println("Najmniejsza wartość w kolumnie 0 to: "+najmniejsze_w_kolumnie_0);
		
		for(int i=0;i<tab.length;i++)
			for(int j=1;j<2;j++) {
		  if(najmniejsze_w_kolumnie_1>tab[i][j])najmniejsze_w_kolumnie_1=tab[i][j];
			}
		System.out.println("Najmniejsza wartość w kolumnie 1 to: "+najmniejsze_w_kolumnie_1);
		
		for(int i=0;i<tab.length;i++)
			for(int j=2;j<3;j++) {
		  if(najmniejsze_w_kolumnie_2>tab[i][j])najmniejsze_w_kolumnie_2=tab[i][j];
			}
		System.out.println("Najmniejsza wartość w kolumnie 2 to: "+najmniejsze_w_kolumnie_2);
		
		for(int i=0;i<tab.length;i++)
			for(int j=3;j<4;j++) {
		  if(najmniejsze_w_kolumnie_3>tab[i][j])najmniejsze_w_kolumnie_3=tab[i][j];
			}
		System.out.println("Najmniejsza wartość w kolumnie 3 to: "+najmniejsze_w_kolumnie_3);
		
		for(int i=0;i<tab.length;i++)
			for(int j=4;j<5;j++) {
		  if(najmniejsze_w_kolumnie_4>tab[i][j])najmniejsze_w_kolumnie_4=tab[i][j];
			}
		System.out.println("Najmniejsza wartość w kolumnie 4 to: "+najmniejsze_w_kolumnie_4);
		
		for(int i=0;i<tab.length;i++)
			for(int j=5;j<6;j++) {
		  if(najmniejsze_w_kolumnie_5>tab[i][j])najmniejsze_w_kolumnie_5=tab[i][j];
			}
		System.out.println("Najmniejsza wartość w kolumnie 5 to: "+najmniejsze_w_kolumnie_5);
		
		for(int i=0;i<tab.length;i++)
			for(int j=6;j<7;j++) {
		  if(najmniejsze_w_kolumnie_6>tab[i][j])najmniejsze_w_kolumnie_6=tab[i][j];
			}
		System.out.println("Najmniejsza wartość w kolumnie 6 to: "+najmniejsze_w_kolumnie_6);
		
		//wyznaczanie szukanie minimum i maksimum i wyświetlenie
		int min = tab[0][0];
		int max = tab[0][0];
		for (int i=0; i<tab.length; i++) {
			for(int j=0; j<tab[i].length; j++) {
				if(tab[i][j]<min) {
					min = tab[i][j];
				} else if(tab[i][j] > max) {
					max=tab[i][j];
				}
			}
		} 
		System.out.println("Najmniejszy elemęt wynosi " +min+" a Największy elemęt wynosi " +max);
		
	//obliczanie średniej arytmetycznej 
	int licznik=0;
	double suma=0,średnia=0;
	for(int i=0; i<tab.length;i++) {
		for(int j=0; j<tab[i].length; j++) {
			licznik++;
		}
	}
	for(int i=0; i<tab.length;i++) {
		for(int j=0; j<tab[i].length; j++) {
			suma+=tab[i][j];
		}
			
		}
	średnia=(suma)/(licznik);
	System.out.println("Srednia arytmetyczna elemętów tablicy wynosi:"+średnia);
	
	//znalezienie i wyświetlenie ilości elemętów mniejszych i większych od średniej.
	int mniejsze=0,większe=0;
	for(int i=0; i<tab.length; i++) {
		for(int j=0; j<tab[i].length; j++) {
			if(tab[i][j]<średnia) {
				mniejsze++;
			} else if(tab[i][j] > średnia) {
				większe++;
			}
		}
	} System.out.println("elęmętów mniejszych od średniej jest: "+mniejsze);
	System.out.println("elemętów większych od średniej jest: "+większe);
	
	//zapisanie i wyświetlenie tablicy w odwrotnej kolejności 
	int q=6;
	for(int i=0; i<tab.length; i++) {
		int w=6;
		for(int j=0; j<tab.length; j++) {
			odwrucona[q][w]=tab[i][j];
			w--;
		}
		q--;
	}
	System.out.println("Tablica w odwrotnej kolejności: ");
	for(int i=0; i<odwrucona.length; i++) {
		for(int j=0; j<odwrucona.length; j++) {
			System.out.print(odwrucona[i][j] + " ");
		}
		System.out.println();
		
	}
		
}
}

Niestety źle mi wyświetla najmniejszą wartość w danej kolumnie bo pokazuje za każdym razem 0.Czy ktoś może mi pomóc poprawić ten kod żeby wszysztko działało jak należy?.Z góry dziękuję.

pozdrawiam

2 odpowiedzi

0 głosów
odpowiedź 13 listopada 2018 przez Mateusz51 Nałogowiec (28,180 p.)
Inicjalizujesz najmiejsze w kolumnie zerami. Gdy tworzys, tablice wszystkie rekordy sa zerowane. A nstepnie przypisujac taki rekord do najmniejszej wsrtosci  to wartosc ta ma zero. Potem inicjalizujesz wartosci liczbami wiekszymi niz zero i patrzysz czy ktoras z tych liczb jest mniejsz niz zero.

Ps. Szczerze powiedziawszy kod nie jest wysokiej klasy. I jesli to jest na ocene radzil bym Ci przysiasc i napisac to raz jeszcze bez powtorzen.
–2 głosów
odpowiedź 13 listopada 2018 przez duftmaschine Początkujący (360 p.)
Swoją drogą, co to za szkoła/uczelnia, w której przyjmują kod tego typu na zaliczenie?
komentarz 13 listopada 2018 przez duftmaschine Początkujący (360 p.)
Za co te łapki w dół? Serio pytam. To tylko pokazuje w jak zaawansowanym stopniu rozkładu jest polskie szkolnictwo.

Podobne pytania

0 głosów
1 odpowiedź 163 wizyt
pytanie zadane 2 marca 2019 w Java przez mn130496 Gaduła (3,530 p.)
0 głosów
1 odpowiedź 328 wizyt
pytanie zadane 12 stycznia 2019 w Java przez mn130496 Gaduła (3,530 p.)
0 głosów
1 odpowiedź 65 wizyt
pytanie zadane 26 marca 2020 w C i C++ przez g34g3gdfg43 Początkujący (300 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...