Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1

Dobrý den, mám za úkol napsat v javě program, kterému zadám matici a on vypíše souřadnice největšího a nejmenšího prvku na vedlejší diagonále. V obrázku posílám ukázkový výpis.

Nemám problém s tím matici zadat a vypsat. Dokážu si i vybrat prvky z vedlejší diagonály a z nich dokážu určit největší a nejmenší prvek. Ale nevím jak udělat to, aby se u největšího a nejmenšího prvku zobrazily souřadnice.
Dokážu si vytvořit pole, kde jsou jen prvky z vedlejší diagonály, ale když najdu maximum a minimum tak je mi to k ničemu, protože tam nemám souřadnice z původní matice. Pomohl by mi někdo s řešením?
(Přikládám současný kód)
public static void main(String[] args) {
System.out.print("Zadej rad matice: ");
int n = sc.nextInt();
int[][] matice = new int[n][n];
int[] prvky = new int[n];
//nacte prvky do matice
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
System.out.printf("m[%d][%d]: ", i, j);
matice[i][j] = sc.nextInt();
}
}
System.out.println("Byla zadana matice:" );
for (int i = 0; i < matice.length; i++) {
for (int j = 0; j < matice[i].length; j++) {
System.out.format("%3d", matice[i][j]);
}
System.out.println(""); //odradkovani
}
//nacte do pole "prvky" prvky z vedlejsi diagonaly
for (int i = 0; i < matice.length; i++) {
prvky[i] = matice[i][((n-2) - i) + 1];
}
System.out.println(Arrays.toString(prvky));
}Offline

↑ Stýv:
Vůbec jsem nevěděl, jak mám zařídit, aby se mi někam ukládaly souřadnice největšího a nejmenšího prvku. Nakonec jsem to vyřešil tímto způsobem a zdá se, že to funguje.
int max = 0;
int min = 0;
int iMax = 0;
int jMax = 0;
int iMin = 0;
int jMin = 0;
for (int i = 0; i < matice.length; i++) {
prvky[i][(n-1)-i] = matice[i][((n-2) - i) + 1];
//max a min ulozim do prvniho nacteneho prvku
max = prvky[0][n-1];
min = prvky[0][n-1];
if(prvky[i][(n-1)-i] > max){
max = prvky[i][(n-1)-i];
iMax = i;
jMax = (n-1)-i;
}
if(prvky[i][(n-1)-i] < min){
min = prvky[i][(n-1)-i];
iMin = i;
jMin = (n-1)-i;
}
}Offline
Stránky: 1