fbpx

Problema #228 – GenMat15 – Rezolvari PBInfo

de Mihai-Alexandru

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 1 la m, ordonate crescător;
  • a doua linie conţine numerele de la m+1 la 2*m, ordonate descrescător;
  • a treia linie conţine numerele de la 2*m+1 la 3*m, ordonate crescător;
  • a patra linie conţine numerele de la 3*m+1 la 4*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

S-ar putea sa iti placa