Informatică, întrebare adresată de calinciurariu, 9 ani în urmă

Problema 226 de pe pbinfo
Scrieţi un program care citeşte de la tastatură trei numere naturale n, a, b şi construieşte în memorie o matrice cu n linii şi n coloane formată numai din valori 0, 1, 2, 3 şi 4 astfel încât: elementele aflate pe linia a sau coloana b sunt egale cu 0, cele aflate deasupra liniei a şi la stânga coloanei b sunt egale cu 1, cele aflate deasupra liniei a şi la dreapta coloanei b sunt egale cu 2, cele aflate sub linia a şi la stânga coloanei b sunt egale cu 3, iar elementele aflate sub linia a şi la dreapta coloanei b sunt egale cu 4.

Date de intrare
Programul citește de la tastatură numerele n, a şi b.

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
2≤n≤24
1 1 liniile şi coloanele sunt numerotate de la 1

Exemplu
Intrare

5 4 3
Ieșire

1 1 0 2 2
1 1 0 2 2
1 1 0 2 2
0 0 0 0 0
3 3 0 4 4

Răspunsuri la întrebare

Răspuns de express
4
#include <iostream>
using namespace std;
int n,k,i,j,v[25][25],a,b;
int main()
{
    cin>>n>>a>>b;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            if((i==a)&&(j==a)) v[i][j]=0;
            if((i<a)&&(j<b)) v[i][j]=1;
            if((i<a)&&(j>b)) v[i][j]=2;
            if((i>a)&&(j<b)) v[i][j]=3;
            if((i>a)&&(j>b)) v[i][j]=4;
            cout<< v[i][j]<<" ";
        }
        cout<<"\n";
    }
    return 0;
}

Alte întrebări interesante