Informatică, întrebare adresată de firebeast310, 10 ani în urmă

Dar aceasta??...
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ă. (10p.) 
 4 4 4 0 
 3 3 0 3  
2 0 2 2  
0 1 1 1 
Nu prea am inteles cum e cu diagonalele.....

Răspunsuri la întrebare

Răspuns de SmartGuy
11
#include<iostream>
#include <iomanip>
using namespace std;
int main()
{
int n,i,j,a[25][25],k=0;

cin>>n;

for (i=1;i<=n;i++)
{for (j=1;j<=n;j++)
 a[i][j]=n+k;
 k--;
}
for(i=0;i<=n;i++)
a[i][n-i+1]=0;                              //elementele de pe diagonala secundara

for (i=1;i<=n;i++)
{for (j=1;j<=n;j++)
 cout<<setw(4)<<a[i][j];  //afisarea cu setw() declarata in <iomanip>
 cout<<endl;
}

}

Alte întrebări interesante