# PBinfo #1007 – matrice7 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerința
Se consideră o matrice cu n linii şi m coloane şi elemente numere naturale. Să se modifice matricea în felul următor: toate elementele egale cu valoarea maximă din matrice se înlocuiesc cu valoarea minimă de pe coloana lor.

Date de intrare
Fișierul de intrare matrice7.in conține pe prima linie numerele n m, iar următoarele n linii câte m numere naturale, reprezentând elementele matricei.

Date de ieșire
Fișierul de ieșire matrice7.out va conține matricea modificată, câte o linie a matricei pe o linie a fişierului, elementele fiecărei linii fiind separate prin exact un spaţiu.

Restricții și precizări

1 ≤ n, m ≤ 100
elementele matricei vor fi mai mici decât 1 000 000 000

Exemplu:
matrice7.in

3 4
2 6 7 3
7 1 7 1
5 3 1 2
matrice7.out

2 6 1 3 
2 1 1 1 
5 3 1 2

## Cod sursă C++

```cpp
#include <fstream>
using namespace std;
ifstream in("matrice7.in");
ofstream out("matrice7.out");
int main() {
	int mat[101][101], n, m;
	in >> n >> m;
	for (int i = 1; i <= n; ++i)
		for (int j = 1; j <= m; ++j)
			in >> mat[i][j];
	int maxim = -10000001;
	for (int i = 1; i <= n; ++i)
		for (int j = 1; j <= m; ++j)
			if (mat[i][j] > maxim)
				maxim  = mat[i][j];
	int minim = 10000001;
	for (int j = 1; j <= m; ++j) {
		for (int i = 1; i <= n; ++i)
			if (mat[i][j] < minim)
				minim = mat[i][j];
		for (int i = 1; i <= n; ++i)
			if (mat[i][j] == maxim)
				mat[i][j] = minim;
		minim = 10000001;
	} for (int i = 1; i <= n; ++i) {
		for (int j = 1; j <= m; ++j)
			out << mat[i][j] << " ";
		out << "\n";
	}
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/1007)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/1007/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-1007/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
