Jako że też się uczę, w moim wypadku C++, to potraktowałem to jako ćwiczenie. Jest to tylko jedna z części zadania - sprawdza przekątne tylko w osi X, od lewej do prawej, można też poprawić wyświetlanie wyników. Ponadto została implementacja pozostałych 3 przekątnych, ale myślę, że nie będzie problemu. Oczywiście na pewno można to zrobić o wiele bardziej efektywnie. Mam nadzieję, że poradzisz sobie z przerobieniem kodu na jave, nie testowałem też tego jakoś super dokładnie, ale **wydaje **mi się, że jest ok.
#include <iostream>
#include <ctime>
#include <cstdlib>
const int X_SIZE = 6; //wiersz
const int Y_SIZE = 6; //kolumna
int main()
{
srand( time( NULL ) );
int f[X_SIZE][Y_SIZE];
for (int i = 0; i<X_SIZE; i++)
{
for(int j = 0; j<Y_SIZE; j++)
{
f[i][j] = (rand() % 8 ) +1;
}
}
for (int i = 0; i<X_SIZE; i++)
{
for(int j = 0; j<Y_SIZE; j++)
{
std::cout<<f[i][j]<<" ";
}
std::cout<<std::endl;
}
std::cout<<std::endl;
int przekatna_x = X_SIZE - 1; //uciete wierzcholki
int przekatna_y = Y_SIZE - 1;
int tab_y[X_SIZE];
if (Y_SIZE >= X_SIZE)
{
for(int z = 0; z < (Y_SIZE - przekatna_x); z++) //sprawdzanie az do ost. wiersza
{
for(int j = 0; j < X_SIZE; j++)
{
tab_y[j] = f[j][z+j];
int pom = f[j][z+j];
for(int c = 0; c < j; c++)
{
if(pom == tab_y[c])
{
std::cout<<"POWTORKA! Przekatna:"
<<z<<" Liczba : "<<pom<<std::endl;
}
}
}
}
for(int z = Y_SIZE - przekatna_x, s = 0; z < przekatna_y; z++,s++)
{
for(int j = 0; j < przekatna_x-s ; j++)
{
tab_y[j] = f[j][z+j];
int pom = f[j][z+j];
for(int c = 0; c < j; c++)
{
if(pom == tab_y[c])
{
std::cout<<"POWTORKA! Przekatna:"
<<z<<" Liczba : "<<pom<<std::endl;
}
}
}
}
}
return 0;
}