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