Cerința
Scrieți un program care citește de la tastatură un număr natural n
și construiește o matrice cu n
linii și n
coloane ale cărei elemente vor primi valori dupa cum urmează:
- În colțul din stânga sus, de coorodnate
1 1
, va fi1
. - În pozițiile adiacente, de coordonate
1 2
și2 1
, va fin
. - În pozițiile adiacente, de coordonate
1 3
,2 2
și3 1
, va fi2
. - În pozițiile adiacente, de coordonate
1 4
,2 3
,3 2
și4 1
, va fin-1
. - Și așa mai departe…
- În penultimele poziții, de coordonate
n-1 n
șin n-1
, va fin
. - În ultima poziție, de coordonate
n n
, va fi1
.
Date de intrare
Programul citește de la tastatură numarul n
.
Date de ieșire
Programul afișează pe ecran matricea construită, câte o linie a matricei pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.
Restricții și precizări
3 ≤ n ≤ 30
Exemplu
Intrare
5
Ieșire
1 5 2 4 3 5 2 4 3 4 2 4 3 4 2 4 3 4 2 5 3 4 2 5 1
Explicație
S-a citit 5
și se afisează o matrice de 5
linii și 5
coloane, unde 1
se află in colțul din stânga sus, apoi în pozițiile învecinate se află 5
, apoi 2
și tot așa până se va completa matricea.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema GenMat28:
#include <iostream>
using namespace std;
int v[61],lc,n,st,dr;
int main()
{
cin>>n;
st=1;
dr=n;
for(int i=1;i<=2*n;i++){
if(i%2==1){
if(v[i-1]!=st){
v[++lc]=st;
st++;
}
else{
st++;
}
}
else{
if(v[i-1]!=dr){
v[++lc]=dr;
dr--;
}
else{
dr--;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<v[i+j-1]<<" ";
}
cout<<endl;
}
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #3417 GenMat28
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3417 GenMat28 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!