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
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;
}
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
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă