Scrieți un program C/C++ care citește de la tastatură un număr natural, n (n∈[2,20]), și construiește în memorie un tablou bidimensional cu n linii și n coloane, astfel încât fiecare linie a sa are proprietățile:
• elementul situat pe diagonala secundară are valoarea n;
• începând de la diagonala secundară, spre stânga, elementele formează un șir strict descrescător de numere consecutive, iar începând de la diagonala secundară, spre dreapta, elementele formează tot un șir strict descrescător de numere consecutive.
Exemplu: dacă n=5 se afișează pe ecran tabloul alăturat.
Răspunsuri la întrebare
#include <iostream>
#include <vector>
int main() {
size_t j, i, n;
std::cin >> n;
std::vector<std::vector<size_t>> tabl(n);
for (i = 1; i <= n; ++i)
for (j = i; j < n + i; ++j)
tabl[i - 1].push_back(j > n ? n - (j - n) : j);
for (i = 0; i < n; ++i) {
for (j = 0; j < n; ++j)
std::cout << tabl[i][j] << ' ';
std::cout << '\n';
}
}
Răspuns:
int a[1000][1000];
int n=0,m,k ,ok=0;
int main()
{
cin>>n;
for(int i=1; i<=n; i++)
{
k=i;
ok=1;
for(int j=1; j<=n; j++)
{
a[i][j]=k;
if(k<n&&ok==1){
k++;
}else{
ok=0;
k--;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<a[i][j]<<" ";
}cout<<endl;
}
}