👤

Un program c++ cu functii . Programul verifica fiecare element din matrice iar daca acesta este prim sterge linia si coloana pe care se afla .Programul va afisa elementele care raman in ordinea aparitiei lor.

Răspuns :

#include <iostream>

using namespace std;

void citire_matrice(int a[25][25], int &n, int &m);

int prim(int n);

void eliminare_prime(int a[25][25], int &n, int &m);

void afisare_matrice(int a[25][25], int n, int m);

int main()

{

int a[25][25], n, m;

citire_matrice(a,n,m);

cout<<endl;

afisare_matrice(a,n,m);

cout<<endl;

eliminare_prime(a,n,m);

afisare_matrice(a,n,m);

return 0;

}

void citire_matrice(int a[25][25], int &n, int &m)

{

int i, j;

cout<<"n="; cin>>n; // Nr. de linii

cout<<"m="; cin>>m; // Nr. de coloane

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

 for(j=1;j<=m;j++){

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

 }

}

int prim(int n)

{

int d;

for(d=2;d<=n/2;d++)

 if(n%d==0)

  return 0;

return 1;

}

void eliminare_prime(int a[25][25], int &n, int &m)

{

int i, j, linie, coloana;

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

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

 {

  if(prim(a[i][j])){

   //eliminare coloana

   for(linie=1;linie<=n;linie++)

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

    a[linie][coloana]=a[linie][coloana+1];

   m--;

   //eliminare linie

   for(coloana=1;coloana<=m;coloana++)

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

     a[linie][coloana]=a[linie+1][coloana];

   n--;

   j--;

   if(j==m) i--;

  }

 }

}

void afisare_matrice(int a[25][25], int n, int m){

for(int i=1;i<=n;i++){

 for(int j=1;j<=m;j++)

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

 cout<<endl;

}

}