Scrieţi un program C/C++ care citeşte de la tastatură un număr natural nenul n (n≤24) şi construieşte în memorie un
tablou bidimensional cu n linii şi n coloane care să conţină primele n numere naturale nenule. Prima linie a tabloului va
conţine, în această ordine, valorile 1,2,...,n; a doua linie va conţine, în ordine, valorile 2,2,3,...,n; a treia linie va conţine,
în ordine, valorile 3,3,3,4,...,n, iar ultima linie va conţine valorile n, n,..., n.
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 despărţite prin câte un spaţiu. Exemplu: pentru n=5 se va afişa matricea alăturată.
1 2 3 4 5
2 2 3 4 5
3 3 3 4 5
4 4 4 4 5
5 5 5 5 5
Răspunsuri la întrebare
1. Asta e varaianta in care folosesti o matrice si poate pare mai usor:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n, E[21][21], c, g;
cin>>n;
c=n;
for(int i=1;i<=n;i++)
{
c--, g=c;
for(int j=1;j<=n;j++)
{
if(i+j==n+1) E[i][j]=0;
else if(i+j<n+1) E[i][j]=g;
else E[i][j]=abs(g);
g--;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cout<<E[i][j]<<" ";
}
cout<<"\n";
}
return 0;
}
2. Asta e varianta fara matrice, dar mai rapida:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n, c, g;
cin>>n;
c=n;
for(int i=1;i<=n;i++) {
c--, g=c;
for(int j=1;j<=n;j++) {
if(i+j==n+1) cout<<0<<" ";
else if(i+j<n+1) cout<<g<<" ";
else cout<<abs(g)<<" ";
g--;
}
cout<<"\n";
}
return 0;
}
Le ai si in notepad.