Scrieti un program care citeste de la tastatura un numar natural n apoi construieste in memorie si afiseaza pe ecran o matrice cu n linii si n coloane in care ficare element de pe diagonala secundara are valoarea n, fiecare element de deasupra diagonalei secundare este mai mic cu o unitate decat vecinul aflat pe aceasi linie in dreapta lui si fiecare element aflat sub diagonala secundara este mai mare cu o unitate decat vecinul aflat pe aceasi linie in stanga lui, elementele matricei vor fi afisate pe ecran, cate o linie a matricei pe cate o linie a ecranului cu cate un spatiu intre elemntele fiecarei linii.
Va rog ajutati-ma!
Răspunsuri la întrebare
Răspuns de
2
# include<iostream>
using namespace std;
int main()
{
unsigned A[20][20],i,j,n;
cin>>n;
for(i=1;i<=n;i++)
for(j=n;j>=1;j--)
if(i+j==n+1)
A[i][j]=n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i+j>n+1)
A[i][j]=A[i][j-1]+1;
for(i=1;i<=n;i++)
for(j=n;j>=1;j--)
if(i+j<n+1)
A[i][j]=A[i][j+1]-1;
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
cout<<A[i][j]<<" ";
cout<<endl;}
return 0;
}
Am rezolvat problema asa ca sa intelegi ! Sper ca te-am ajutat .
using namespace std;
int main()
{
unsigned A[20][20],i,j,n;
cin>>n;
for(i=1;i<=n;i++)
for(j=n;j>=1;j--)
if(i+j==n+1)
A[i][j]=n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i+j>n+1)
A[i][j]=A[i][j-1]+1;
for(i=1;i<=n;i++)
for(j=n;j>=1;j--)
if(i+j<n+1)
A[i][j]=A[i][j+1]-1;
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
cout<<A[i][j]<<" ";
cout<<endl;}
return 0;
}
Am rezolvat problema asa ca sa intelegi ! Sper ca te-am ajutat .
OanaGabriela:
Multumesc mult. dar ma o intrebare de ce scade j?
Alte întrebări interesante
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Franceza,
9 ani în urmă