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