Informatică, întrebare adresată de niorbaana, 8 ani în urmă

Buna ! Am o intrebare . aceasta este cerinta :
Se dă o matrice m cu N linii și N coloane, și două numere i și j reprezentând poziția în matrice a primului element al unei paralele la diagonala principală. Să se afișeze toate elementele de sus în jos de pe acea paralelă la diagonală.

Date de intrare
De pe prima linie se citesc la tastatură numărul N. De pe următoarele N linii se citesc N numere naturale care reprezintă coordonatele matricei. De pe ultima linie se citesc numerele i și j.

Date de ieșire
Programul va afișa pe ecran un șir de numere separate prin spații, reprezentând elementele de pe paralela la diagonală.
Cum ar trebui sa scriu codul ? Niste idei va rog , multumesc !

Răspunsuri la întrebare

Răspuns de boiustef
2

Răspuns:

Explicație:

00 01 02 03 04 05

10  11  12   13  14  15

20 21 22 23 24 25

30 31 32 33 34 35

40 41 42 43 44 45

50 51 52 53 54 55

Am scris perechile de indici a elementelor matricei. Dacă se sune că se dă perechia i,j a poziţiei primului element de pe o paralelă la diagonala principală, deci elementul poate fi  pe prima linie (unde i<j) sau pe prima coloană (unde i>j).  Să luăm ca exemplu (i, j) = 2,0. Observăm că elementele pe care trebuie să le afişem sunt 20 31 42 53.

Se observă că ambii indici cresc cu o unitate cât i şi j sunt mai mici ca n, la exemplul nostru n=6  şi indexarea e de la 0.

while (i<n && j<n)

{ cout << a[i++][j++] << " "; }

 


niorbaana: #include
using namespace std ;
int main(){
int m[51][51];
int n,i,j,k;
cin>>m[i][j]; // aflam numarul de linii si de coloane
}
}
// citim diagonala paralela sub diagonala principala
for(k=1;k<=n;k++){
i=n;
j=k;
while(j>i){ // elementul este pe prima linie
cout<i++; // ambele elemente cresc cu o unitate
j++;
}
}
for(k=n-1;k>=1;k--){
j=n;
i=k;
while(i>j){ //elementul e pe prima coloana
cout<i++; // crestem elementele cu o unitate
j++;
}
}
return 0;
}
niorbaana: asta este ce am facut . Am incercat sa pun in Pastebin , insa nu m a lasat sa adaug la comentariu , daca doriti va puteti uita peste el . Multumesc pt tot ajutorul acordat !
boiustef: ai citit matricea, dar mai întâi trebuia de citit n, după matricea şi la urmă i, j. Nu văd asta în cod...
boiustef: am să adaug link...
boiustef: https://pastebin.com/hp2mzBEW
Alte întrebări interesante