Răspuns :
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("matrice.in");
ofstream out("matrice.out");
int main()
{
int n, m, c1, c2;
in>>n;
in>>m;
in>>c1;
in>>c2;
int a[n][m], aux[m];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
in>>a[i][j];
if(j==c2)
aux[i]=a[i][j];
}
for(int i=1;i<=n;i++)
a[i][c1]=aux[i];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
Exemplu:
n = 3
m = 4
c1 = 3
c2 = 1
Matricea este:
1 2 3 4
1 2 4 3
1 3 4 2
Se va afisa:
1 2 1 4
1 2 1 3
1 3 1 2
Explicație:
Citim initial cate linii si coloane are matricea a[i][j], dupa care citim coloana pe care vrem sa o inlocuim apoi citim coloana cu care vrem sa inlocuim coloana citita anterior.
Am declarat matricea a[n][m] deoarece este mai eficient sa folosesti asa declararea intrucat nu ocupi spatiu suplimentar in memorie, folosind doar nxm valori necesare.
In timpul citirii matricei, vom folosi un vector auxiliar care va memora toate elementele de pe coloana c2 citita.
Parcurgem din nou matricea cu un singur for(i,n) deoarece avem deja coloana c1 pe care vrem sa o inlocuim.
Ex: Pt exemplul de mai sus, noi vrem sa inlocuim coloana 3, adica elementele (3, 4 , 4)
c1: 3 4 4 ... si cum coloana este astfel:
3
4
4
Crestem i-ul astfel incat sa modificam elementele de pe fiecare linie a coloanei c1 citita.
i=1: 3
i=2: 4
i=3: 4
Vectorul aux[] are elementele: 1 1 1
a[1][3]=aux[1] ⇒ a[1][3]=1
a[2][3]=aux[2] ⇒ a[2][3]=1
a[3][3]=aux[3] ⇒ a[3][3]=1
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.