Buna!
Ma poate ajuta cineva cu problema Eliminare3 de pe pbinfo?
#796 Eliminare3
Cerința
Se dă o matrice cu m linii și n coloane și elemente numere naturale cu cel mult patru cifre. Să se modifice matricea, eliminând penultima linie și penultima coloană.
Date de intrare
Programul citește de la tastatură numerele m n, iar apoi m*n numere naturale, reprezentând elementele matricei.
Date de ieșire
Programul va afișa pe ecran matricea obținută fiecare linie a matricei pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu.
Restricții și precizări
3 ≤ m,n ≤ 50
Exemplu
Intrare
4 5
5 1 2 3 4
8 2 2 5 3
2 1 7 3 9
3 0 9 8 5
Ieșire
5 1 2 4
8 2 2 3
3 0 9 5
Multumesc!
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int main(){
int n, m, x;
cin >> n >> m;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
cin >> x;
if(i != n-2 && j != m-2)
cout << x << ' ';
}
if(i != n-2) cout << '\n';
}
}
Explicație:
Se poate face si fara folosirea unei matrici, afisand valorile citite daca nu sunt de pe penultimul rand sau penultima coloana.
#include <iostream>
#include <vector>
int main(){
int m, n, i, j;
std::cin >> m >> n;
std::vector<std::vector<int>> vec(m);
for(i = 0; i < m; ++i){
vec[i].resize(n);
for(j = 0; j < n; ++j)
std::cin >> vec[i][j];
}
std::cout << '\n';
for(i = 0; i < m; ++i){
if(i == m-2)
continue;
for(j = 0; j < n; ++j)
if(j != n-2)
std::cout << vec[i][j] << ' ';
std::cout << '\n';
}
}