Scrieţi un
program C/C++ care citeşte de la tastatură un număr natural n (2≤n≤24)
şi construieşte în memorie o matrice cu n linii şi n coloane ale
cărei elemente vor primi valori după cum urmează:
- elementele
aflate pe diagonala secundară a matricei vor primi valoarea 0
- elementele de
pe prima linie, cu excepţia celui aflat pe diagonala secundară vor primi valoarea
n
- elementele de
pe a doua linie, cu excepţia celui aflat pe diagonala secundară vor primi valoarea
n-1
- elementele de
pe ultima linie, cu excepţia celui aflat pe diagonala secundară vor primi valoarea
1
Programul va
afişa matricea astfel construită pe ecran, câte o linie a matricei pe câte o
linie a ecranului, cu câte un spaţiu între elementele fiecărei linii (ca
în exemplu).
Exemplu: pentru n=4 se
va afişa matricea alăturată.
4 4 4 0
3 3 0 3
2
0 2 2
0
1 1 1
Răspunsuri la întrebare
Răspuns de
6
Bănuiesc că numerotezi matricea de la 1 la n.
#include <iostream>
using namespace std;
int main()
{
int n, i, j, a[20][20], aux;
cin >> n;
aux = n;
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
{
if (i+j-1 == n) // se afla pe diagonala secundara
{
a[i][j] = 0;
}
else
{
a[i][j] = aux;
}
}
aux--;
}
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
cout << a[i][j] << " ";
cout << endl;
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int n, i, j, a[20][20], aux;
cin >> n;
aux = n;
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
{
if (i+j-1 == n) // se afla pe diagonala secundara
{
a[i][j] = 0;
}
else
{
a[i][j] = aux;
}
}
aux--;
}
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
cout << a[i][j] << " ";
cout << endl;
}
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Geografie,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă