Răspuns :
Cel mai simplu ar fi sa ai un vector, a carui dimensiune o calculezi in functie de n (do the math) si in care adaugi treptat elementele de pe liniile si coloanele care te intereseaza. Ai grija sa nu adaugi colturile de 2 ori.
Daca nu vrei sa calculezi dimensiunea vectorului poti sa faci un K=0 si pe masura ce parcurgi liniile/coloanele sa faci vector[K++] = element
Daca nu vrei sa calculezi dimensiunea vectorului poti sa faci un K=0 si pe masura ce parcurgi liniile/coloanele sa faci vector[K++] = element
Încearcă asta, nu am stat prea mult și sunt sigur că se poate și mai optim:
#include <fstream>
using namespace std;
ofstream fout("prob.out");
ifstream fin("prob.in");
int m[25][25], n;
void rec(int i, int j)
{
if(i == 1 && j == 1) return;
else {
fout << m[i][j] << ' ';
if(i == 1 && j != n) rec(i, j+1);
else if(j == n && i != n) rec(i+1, j);
else if(i == n && j != 1) rec(i, j-1);
else rec(i-1, j);
}
}
int main()
{
fin >> n;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
fin >> m[i][j];
fout << m[1][1] << ' ';
rec(1, 2);
}
#include <fstream>
using namespace std;
ofstream fout("prob.out");
ifstream fin("prob.in");
int m[25][25], n;
void rec(int i, int j)
{
if(i == 1 && j == 1) return;
else {
fout << m[i][j] << ' ';
if(i == 1 && j != n) rec(i, j+1);
else if(j == n && i != n) rec(i+1, j);
else if(i == n && j != 1) rec(i, j-1);
else rec(i-1, j);
}
}
int main()
{
fin >> n;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
fin >> m[i][j];
fout << m[1][1] << ' ';
rec(1, 2);
}
Vă mulțumim pentru vizita pe platforma noastră dedicată Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Așteptăm cu entuziasm să reveniți și vă invităm să ne adăugați la lista de favorite!