Rezolvare completă PbInfo #2810 Inserare1

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 

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Inserare1:

#include <iostream>

using namespace std;

int main()
{
    int n, m;
    double a[52][51];
    cin >> n;
    m = n;
    for(int i = 1 ; i <= n ; i ++)
        for(int j = 1 ; j <= m ; j ++)
            cin >> a[i][j];
    
    for(int i = n ; i >= n/2; i --)
        for(int j = 1 ; j <= m ; j ++)
            a[i+1][j] = a[i][j];
    n ++;
    for(int j = 1 ; j <= n ; j ++)
        a[n/2 + 1][j] = 0;
    for(int j = 1 ; j <= m ; j ++)
    {
        double s = 0;
        for(int i = 1 ; i<= n ; i ++)
            s += a[i][j];
        a[n/2+1][j] = s / (n-1);
    }
    
    for(int i = 1 ; i <= n ; i ++)
    {
        for(int j = 1 ; j <= m ; j ++)
            cout << a[i][j] << " ";
        cout << "\n";
    }
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2810 Inserare1

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2810 Inserare1 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!