În fișierul mat.in pe prima linie se gasesc doua numere naturale n si m,iar pe urmatoarele n linii cate m elemente intregi. Cerinte:
1) sa se afiseze elementele prime de pe prima coloana
2) sa se verifice daca pe coloana 3 sunt numai elemente pozitive
Va rog sa ma ajutati, am nevoie urgent
Răspunsuri la întrebare
#include <iostream>
#include <fstream>
using namespace std;
//Citesc matricea declarata static din fisierul
bool citire(int matrice[10][10], int& nLinii, int& nColoane) {
ifstream file("mat.in");
if (!file.is_open()) return 0;
file >> nLinii >> nColoane;
for (int linie = 0; linie < nLinii; linie++) {
for (int coloana = 0; coloana < nColoane; coloana++) {
file >> matrice[linie][coloana];
}
}
file.close();
return 1;
}
//Verifica daca numarul e prim
bool este_prim(int nr)
{
if (nr < 2)
return false;
if (nr == 2)
return true;
for (int i = 2; i * i <= nr; i++)
if (nr % i == 0)
return false;
return true;
}
bool sunt_pozitive(int mat[10][10], int linii, int coloane) {
//Daca matricea are mai putin de 3 coloane returneaza 0
if (coloane <= 3) return 0;
//Verifica fiecare linie
for (int linie = 0; linie < linii; linie++) {
//Daca gasesti element negativ returneaza 0
if (mat[linie][3] < 0) return 0;
}
//Daca nu ai gasit element negativ returneaza 1
return 1;
}
int main() {
int mat[10][10], n, m;
citire(mat, n, m);
cout << "\nElemente prime pe prima coloana : ";
for (int linie = 0; linie < n; linie++) {
if (este_prim(mat[linie][0]))
cout << mat[linie][0] << " ";
}
if (sunt_pozitive(mat, n, m))
cout << "\nDa,toate elementele de pe coloana 3 sunt pozitive";
else
cout << "\nNu toate elementele de pe coloana 3 sunt pozitive";
}