380
Cerinţa
Scrieţi un program care citeşte de la tastatură două numere naturale n şi m şi construieşte în memorie o matrice cu n linii şi m coloane care conţine numerele naturale de la 1 la m*n, dispuse astfel:
- prima linie conţine numerele de la
1lam, ordonate crescător; - a doua linie conţine numerele de la
m+1la2*m, ordonate descrescător; - a treia linie conţine numerele de la
2*m+1la3*m, ordonate crescător; - a patra linie conţine numerele de la
3*m+1la4*m, ordonate descrescător; - etc.
Date de intrare
Programul citește de la tastatură numerele n şi m.
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,m≤15
Exemplu
Intrare
4 5
Ieșire
1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 20 19 18 17 16
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n , m , a[20][20] , x = 1;
cin >> n >> m;
for(int i = 1 ; i <= n ; ++i)
{
for(int j = 1 ; j <= m ; ++j)
{
a[i][j]=x;
x++;
}
}
for(int i = 1 ; i <= n ; ++i)
{
if(i % 2 == 0)
{
for(int j = m ; j >= 1 ; --j)
{
cout << a[i][j] <<" ";
}
}
else
{
for(int j = 1 ; j <= m ; ++j)
{
cout << a[i][j] <<" ";
}
}
cout << endl;
}
}
Comentarii