👤
a fost răspuns

Să se scrie o funcție numită inserareMedie care primește un număr N, un număr M, o matrice mt care poate avea maxim 51 de linii și maxim 51 de coloane și un număr k. Funcția va insera pe poziția k o nouă linie în matrice, având pe fiecare coloană un număr rațional egal cu media aritmetică a elementelor de pe acea coloană. Parametrii N și M vor fi transmiși prin referință.

Semnătură funcție
Funcția trebuie să se numească inserareMedie.
Funcția trebuie să primească doi parametri numere întregi transmiși prin referință, o matrice cu numere raționale și un număr întreg. Parametrii trebuie să fie în această ordine.
La finalul funcției matricea trebuie să conțină o linie în plus conform enunțului
Funcția nu va returna nimic


Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int i, j, m, n,  s = 0;

double mt[51][51];

void inserareMedie(int &n, int &m, double mt[51][51],int k) {

double s = 0;

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

           s=0;

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

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

 mt[n][j] = s / n;}

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

           s=mt[n][j];

 for (int i = n ; i >=k + 1; i--) {

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

 }

  mt[k ][j] = s;

}

++n;

}

void afisare(int n, int m, double mt[51][51]) {

cout << "noua matrice :\n "; cout << endl;

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

 for (j = 0; j < m; j++)

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

 cout << endl;

}

}

int main() {

int n = 2, m = 2;

double mt[51][51] = { {1,1}, {2,2} };

inserareMedie(n, m, mt, 1);

afisare(n, m, mt);

cout << n << " " << m;

}

Explicație: