Wyświetlanie minimum i maksimum każdej kolumny

0

Witam, chciałbym aby program wyświetlał minimum i maksimum z każdej kolumny tablicy. Doszedłem do pewnego etapu, ale program nie działa jak należy. Wie ktoś może gdzie tkwi błąd?

import java.util.Random;

public class tablice2 {
  public static void main(String[] args){
      int t [][] = new int [5][5];
      int n [] = new int [5];
      Random r = new Random();
      int min  = t[0][0];


      for (int i = 0; i <t.length ;i++){

          for(int j = 0; j < t[i].length ;j++){
            t[i][j] = r.nextInt(6)-5;
              System.out.print(t[i][j]+ " ");

              if(t[i][j]<min){
                  min = t[i][j];
              }

          }
          n[i]=min;
          System.out.println(" ");
      }
      for(int k=0;k<n.length;k++){
          System.out.println("Minimum kolumny "+k + ": " +n[k]);
      }



  }
}
1

z glownych rzeczy to jak chcesz porownywac wartosci w kolumnie a nie wierszu to powinienes sie odwolywac w tym przypadku t[wewnetrznyIndex][zewnetrznyIndex].
no i brakowalo ci resetowania wartosci minimalnej z kazda nowa kolumna.

masz poprawiony kod, dodalem najpierw petle ktore wypelniaja tablice zebys zajarzyl o co chodzi;

    public static void main(String[] args){
        int t [][] = new int [5][5];
        int n [] = new int [5];
        Random r = new Random();

        for (int i = 0; i <t.length ;i++){
            for(int j = 0; j < t.length ;j++){
                t[i][j] = r.nextInt(6)-5;
                System.out.print(t[i][j]+ "\t");
            }
            System.out.println();
        }

        for (int i = 0; i <t.length ;i++){
            int min  = Integer.MAX_VALUE;
            for(int j = 0; j < t.length ;j++){
                if(t[j][i]<min){
                    min = t[j][i];
                }

            }
            n[i]=min;
        }
        
        for(int k=0;k<n.length;k++){
            System.out.println("Minimum kolumny "+k + ": " +n[k]);
        }

    }
0

Ok, co do restowania wartości, rozumiem że po przejściu pętli wewnętrznej, ustawiasz wartość maksymalną by znowu znaleźć minimum. Nie rozumiem jednak, dlaczego musi być t[j][i], a nie t[i][j]?

0

Kod działa jeśli chodzi o minimum, jeśli będę chciał wyznaczyć maksimum kod już nie działa i nawet pojawia się problem z poprawnym wyznaczeniem minimum.

import java.util.Random;

public class tablice2 {
  public static void main(String[] args){
      int t [][] = new int [5][5];
      int n [] = new int [5];
      int x [] = new int [5];
      Random r = new Random();
      int min  = t[0][0];
      int max = t[0][0];


      for (int i = 0; i <t.length ;i++){
          min = Integer.MAX_VALUE;
          max = Integer.MIN_VALUE;
          for(int j = 0; j < t[i].length ;j++){
            t[i][j] = r.nextInt(6)-5;
              System.out.print(t[i][j] + " ");

              if(t[j][i]<min){
                  min = t[j][i];
              }

              if(t[j][i]>max){
                  max = t[j][i];
              }

          }
          n[i]=min;
          x[i]=max;


          System.out.println(" ");
      }

      for(int p=0;p<x.length;p++){
          System.out.println("Maksimum kolumny "+p + ": " +x[p] );
      }

      for(int k=0;k<n.length;k++){
          System.out.println("Minimum kolumny "+k + ": " +n[k]);
      }



  }
}

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