👤

Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (2 <n<20)construieşte în memorie şi afişează pe ecran o matrice cu n linii şi n coloane, numerotate de la 1 la n, în care fiecare element aflat pe o linie impară este egal cu suma dintre numărul liniei şi numărul coloanei pe care se află şi fiecare element aflat pe o linie pară este egal cu cel mai mic dintre elementele aflate pe linia anterioara si pe aceeasi coloana cu el sau pe linia anterioara si pe una dintre coloanele vecine cu cea pe care se afla el.
Elementele matricei vor fi afişate pe ecran, câte o linie a matricei pe
câte o linie a ecranului cu câte un spaţiu între elementele fiecărei linii.
Exemplu: pentru n=5 se va afişa matricea alăturată.
2 3 4 5 6
2 2 3 4 5
4 5 6 7 8
4 4 5 6 7
6 7 8 9 10
Nu inteleg cum ar trebui scrisa ultima conditie (fiecare element aflat pe o linie pară este egal cu cel mai mic dintre elementele aflate pe linia anterioara si pe aceeasi coloana cu el sau pe linia anterioara si pe una dintre coloanele vecine cu cea pe care se afla el.)
Va rog sa ma ajutati !!


Răspuns :

Enuntul se refera la faptul ca daca dai de o linie para, te uiti la cei 3 vecini de deasupra si il alegi pe cel mai mic dintre ei
Adica, daca il ai pe t[i][j], te vei uita la t[i - 1][j], t[i - 1][j-1], t[i - 1][j + 1], si vei alege minimul dintre cei 3;
ex: t[2][3], te vei uita sa gasesti minimul dintre t[1][3], t[1][2], t[1][4].
E mai bine sa desenezi pe o coala si sa vezi...o sa intelegi mai rapid.
Daca vrei, pun si rezolvarea.