Se dă o matrice cu n linii și m coloane și elemente numere naturale diferite.
Cerinţa
Să se afișeze matricea obținută prin interschimbarea în matricea dată a liniei care conține valoarea maximă cu linia care conține valoarea minimă
Date de intrare
Fişierul de intrare interschimbarelinii.in conţine pe prima linie numerele n și m, iar pe următoarele n linii câte m numere naturale diferite.
Date de ieşire
Fişierul de ieşire interschimbarelinii.out va conţine matricea transformată, câte o linia matricei pe o linie a fișierului, elementele de pe fiecare linie fiind separate printr-un spațiu..
Restricţii şi precizări
1 ≤ n,m ≤ 25
numerele matricei vor fi mai mici decât 10000
Exemplu
interschimbarelinii.in
4 6
8 33 35 28 20 10
23 17 24 6 22 31
15 25 12 43 27 13
21 3 19 29 5 30
interschimbarelinii.out
8 33 35 28 20 10
23 17 24 6 22 31
21 3 19 29 5 30
15 25 12 43 27 13
C++ va rog , #193
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
short a[26][26];
int main()
{
ifstream f("interschimbarelinii.in");
ofstream g("interschimbarelinii.out");
short n, m, i, j, num, linemin, linemax, min, max;
f >> n >> m;
f >> a[1][1]; min=a[1][1]; linemin=1; max=a[1][1]; linemax=1;
for (j=2; j<=m; ++j)
{
f >> a[1][j];
if (a[1][j]<min) { min=a[1][j]; linemin=1; }
if (a[1][j]>max) { max=a[1][j]; linemax=1; }
}
for (i=2; i<=n; ++i)
{
for (j=1; j<=m; ++j)
{
f >> a[i][j];
if (a[i][j]<min) { min=a[i][j]; linemin=i; }
if (a[i][j]>max) { max=a[i][j]; linemax=i; }
}
}
for (j=1; j<=m; ++j)
{
num=a[linemax][j]; a[linemax][j]=a[linemin][j]; a[linemin][j]=num;
}
for (i=1; i<=n; ++i)
{
for (j=1; j<=m; ++j)
g << a[i][j] << " ";
g << "\n";
}
return 0;
}
Explicație: