Informatică, întrebare adresată de Forex, 8 ani în urmă

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ță.
Exemplu
int N = 2, M = 2;
double mt[51][51]={{1,1}, {2,2}};
inserareMedie(N, M, mt, 1);
// mt va fi
// 1 1
// 1.5 1.5
// 2 2
// N va fi 3, M va fi 2
1 ≤ N, M ≤ 50
0 ≤ k ≤ N
-100 ≤ mt[i][j] ≤ 100
Liniile și coloanele matricei sunt numerotate începând cu 0

Răspunsuri la întrebare

Răspuns de MariusCelTrifan
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n,m,i,j,k;

   float S=0;

  cout<<"n=";

  cin>>n;

  cout<<"m=";

  cin>>m;

  cout<<"k=";

  cin>>k;

  float a[n][m];

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

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

  {

      cout<<"a["<<i<<"]["<<j<<"]=";

      cin>>a[i][j];

  }

  n++;

  j=0;

  while(j<m)

  {

   for(i=n-1;i>k;i--)

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

   if(i==k)

   {

       i=0;

       j++;

   }

  }

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

  {

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

      S=S+a[i][j];

      a[k][j]=(S-a[k+1][j])/(n-1);

      S=0;

  }

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

  {

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

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

      cout<<"\n";

  }

  return 0;

}

Explicație:

C++; Da si tu un mulumesc

Alte întrebări interesante