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

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ăspunsuri la întrebare

Răspuns de 1Viserys
4

#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;

}



Dilau420: vezi ca s trebuie declarat de tip float nu int
1Viserys: evident :)) scuze, o sa fiu mai atent e viitor
Alte întrebări interesante