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

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ăspunsuri la întrebare

Răspuns de Daniel4761
0

#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;

}

}


Daniel4761: Cam mult cod, stiu :))
Vibe23: mersi mult ca m-ai ajutat si de data asta :))
Daniel4761: Cu placere!
Alte întrebări interesante