👤

Problema #2810 Inserare1 Pbinfo C++


Cerința
Scrieți un program care citește de la tastatură un număr natural par n (n∈[2,50]) și elementele unui tablou bidimensional cu n linii și n coloane, numere reale, apoi transformă tabloul în memorie, inserând o linie nouă, la mijlocul său, valoarea fiecărui element al acesteia fiind egală cu media aritmetică a elementelor aflate pe coloana corespunzătoare lui în tabloul citit. Tabloul obținut se afișează pe ecran, câte o linie a tabloului pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spațiu.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n • n elemente ale tabloului.

Date de ieșire
Programul va afișa pe ecran elementele tabloului modificat, conform cerinței.

Restricții și precizări
valorile afișate sunt considerate corecte dacă diferența în valoare absolută dintre fiecare element afișat și cel corect este mai mică decât 0.001


Răspuns :

#include <iostream>

using namespace std;

void Afisare(float A[100][100], int l, int c)

{

cout<<endl;

for(int i=0; i<l; i++)

{for(int j=0; j<c; j++)

cout<<A[i][j]<<" ";


cout<<endl;}

}

int main()

{

int n;

float M[100][100];

cin>>n;

for(int i=0; i<n; i++)

for(int j=0; j<n; j++)

cin>>M[i][j];


int l=n+1;

int c=n;


for(int i=l-1; i>(l/2); i--)

for(int j=0; j<c; j++)

M[i][j]=M[i-1][j];


for(int i=0; i<c; i++)

M[l/2][i]=0;


for(int j=0; j<c; j++)

{

int s=0;

for(int i=0; i<l; i++)

{

s=s+M[i][j];

}

M[l/2][j]=s/n;

}


Afisare(M, l, c);

return 0;

}