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

Cum as putea rezolva aceasta problema? 
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 principală a matricei vor primi valoarea 0 - elementele de pe prima coloană, cu excepţia celui aflat pe diagonala principală vor primi valoarea n - elementele de pe a doua coloană, cu excepţia celui aflat pe diagonala principală vor primi valoarea n-1 ... - elementele de pe ultima coloană, cu excepţia celui aflat pe diagonala principală 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.) 
0 3 2 1
 4 0 2 1
 4 3 0 1
 4 3 2 0 

Răspunsuri la întrebare

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

cin>>n;

for (j=1;j<=n;j++)
{for (i=1;i<=n;i++)
a[i][j]=n+k;
k--;
}

for(i=0;i<=n;i++)
a[i][i]=0;                            //elementele de pe diagonala principala

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

}


Alte întrebări interesante