fbpx

Problema #2810 – Inserare1 – Rezolvari PBInfo

de Mihai-Alexandru

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

Exemplu

Intrare

4
1.5 0.75 3 1.2
2.75 1.25 2.25 1.5
4.5 1.15 3 4.5
0.25 0.85 1.75 3

Ieșire

1.5 0.75 3 1.2 
2.75 1.25 2.25 1.5 
2.25 1 2.5 2.55 
4.5 1.15 3 4.5 
0.25 0.85 1.75 3 
#include <bits/stdc++.h>
using namespace std;

double a[51][51];

int main()
{
    int n;
    cin >> n;
    for(int i = 1 ; i <= n ; ++i)
        for(int j = 1 ; j <= n ; ++j)
            cin >> a[i][j];
    double v[51];
    for(int i = 1 ; i <= n ; ++i)
        for(int j = 1 ; j <= n ; ++j)
            v[j]+=(a[i][j]*100000);
    for(int i = 1 ; i <= n ; ++i)
        v[i]/=(n*100000);
    for(int i = 1 ; i <= n/2 ; ++i)
    {
        for(int j = 1 ; j <= n ; ++j)
            cout << a[i][j] << ' ';
        cout << endl;
    }
    for(int i = 1 ; i <= n ; ++i)
        cout << v[i] << ' ';
    cout << endl;
    for(int i = n/2 + 1 ; i <= n ; ++i)
    {
        for(int j = 1 ; j <= n ; ++j)
            cout << a[i][j] << ' ';
        cout << endl;
    }
    return 0;
}
Comentarii

S-ar putea sa iti placa