URGENT Se da o matrice cu n linii si m coloane. Sa se afiseze matricea modificata astfel: elementele de pe contur egale cu valoarea elementului aflat pe ultima linie si ultima coloana.
Răspunsuri la întrebare
Răspuns de
3
1. Trebuie să preiei elementul de pe ultima linie/coloană. Nu știu dacă la școală ați făcut cu for de la 0 la < n (Caz 1), sau de la 1 la <= n (Caz 2), dar sunt similare rezolvările.
Caz 1:
int ultimul_element = a[n-1][m-1];
Caz 2:
int ultimul_element = a[n][m];
2. Trebuie să parcurgi cele 4 contururi.
2.a) Conturul de sus, fiecare coloană de pe prima linie
Caz 1:
for(i=0;i<m;i++){
a[0][i] = ultimul_element;
}
Caz 2:
for(i=1;i<=m;i++){
a[1][i] = ultimul_element;
}
2.b) Conturul de jos, fiecare coloană de pe ultima linie
Caz 1:
for(i=0;i<m;i++){
a[n-1][i] = ultimul_element;
}
Caz 2:
for(i=1;i<=m;i++){
a[n][i] = ultimul_element;
}
2.c) Conturul din stânga, fiecare linie de pe prima coloană
Caz 1:
for(i=0;i<n;i++){
a[i][0] = ultimul_element;
}
Caz 2:
for(i=1;i<=n;i++){
a[i][1] = ultimul_element;
}
2.d) Conturul din dreapta, fiecare linie de pe ultima coloană
Caz 1:
for(i=0;i<n;i++){
a[i][m-1] = ultimul_element;
}
Caz 2:
for(i=1;i<=n;i++){
a[i][m] = ultimul_element;
}
Și e gata. Oricum, se pot scrie și mai compact, adică 2 în una:
1. Iei bordurile de sus și de jos și le înlocuiești (adică prima și ultima linie)
for(i=0;i<m;i++){
a[0][i] = ultimul_element;
a[m-1][i] = ultimul_element;
}
2. Iei bordurile din stânga și din dreapta (adică pe prima și ultima coloană)
for(i=0;i<n;i++){
a[i][0] = ultimul_element;
a[i][n-1] = ultimul_element;
}
Acum centralizând:
int a[100][100], i, j, el;
cin>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>a[i][j];
el = a[n-1][m-1];
for(i=0;i<m;i++){
a[0][i] = el;
a[m-1][i] = el;
}
for(i=0;i<n;i++){
a[i][0] = el;
a[i][n-1] = el;
}
for(i=0;i<n;i++){
for(j=0;j<m;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
Caz 1:
int ultimul_element = a[n-1][m-1];
Caz 2:
int ultimul_element = a[n][m];
2. Trebuie să parcurgi cele 4 contururi.
2.a) Conturul de sus, fiecare coloană de pe prima linie
Caz 1:
for(i=0;i<m;i++){
a[0][i] = ultimul_element;
}
Caz 2:
for(i=1;i<=m;i++){
a[1][i] = ultimul_element;
}
2.b) Conturul de jos, fiecare coloană de pe ultima linie
Caz 1:
for(i=0;i<m;i++){
a[n-1][i] = ultimul_element;
}
Caz 2:
for(i=1;i<=m;i++){
a[n][i] = ultimul_element;
}
2.c) Conturul din stânga, fiecare linie de pe prima coloană
Caz 1:
for(i=0;i<n;i++){
a[i][0] = ultimul_element;
}
Caz 2:
for(i=1;i<=n;i++){
a[i][1] = ultimul_element;
}
2.d) Conturul din dreapta, fiecare linie de pe ultima coloană
Caz 1:
for(i=0;i<n;i++){
a[i][m-1] = ultimul_element;
}
Caz 2:
for(i=1;i<=n;i++){
a[i][m] = ultimul_element;
}
Și e gata. Oricum, se pot scrie și mai compact, adică 2 în una:
1. Iei bordurile de sus și de jos și le înlocuiești (adică prima și ultima linie)
for(i=0;i<m;i++){
a[0][i] = ultimul_element;
a[m-1][i] = ultimul_element;
}
2. Iei bordurile din stânga și din dreapta (adică pe prima și ultima coloană)
for(i=0;i<n;i++){
a[i][0] = ultimul_element;
a[i][n-1] = ultimul_element;
}
Acum centralizând:
int a[100][100], i, j, el;
cin>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>a[i][j];
el = a[n-1][m-1];
for(i=0;i<m;i++){
a[0][i] = el;
a[m-1][i] = el;
}
for(i=0;i<n;i++){
a[i][0] = el;
a[i][n-1] = el;
}
for(i=0;i<n;i++){
for(j=0;j<m;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
Alte întrebări interesante
Chimie,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Geografie,
9 ani în urmă