Informatică, întrebare adresată de jut, 9 ani în urmă

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
in c++ va rog

Răspunsuri la întrebare

Răspuns de ArMyFoRHeLL
4
#include <iostream>

using namespace std;

int main()
{
  int mat[51][51],n,m,i,j,k;
  cin>>m>>n;

  for(i=1;i<=m;i++)
    for(j=1;j<=n;j++)
    cin>>mat[i][j];

   for(i=1;i<=m;i++)
     mat[i][n-1]=mat[i][n];
n--;
  for(i=1;i<=n;i++)
    mat[m-1][i]=mat[m][i];
m--;
   for(i=1;i<=m;i++)
   {
    for(j=1;j<=n;j++)
    {
        cout<<mat[i][j]<<" ";
    }
    cout<<endl;
   }
    return 0;
}



stassahul: Ii da 80 pcte pe pbinfo, dak nu intelegi greseala tio spun ;)
stassahul: In fine, deja cred ca te-ai uitat la raspunsul meu. Deci vezi ca la restrictii scrie ca m si n mai mic egal decit 50, cuvintul principal este egal. Vectorii si matricele incep de la indicele 0, deci scriind a[50][50], obtii o matrice cu 50 elemente, iar daca primul element este a[0][0], atunci ultimul va fi a[49][49]. Ca prin urmare daca vei scrie n=50 si m=50 iti va afisa ca iesi din matrice, deoarece a[50][50] nici nu exista. Daca ai fi scris int a[51][51], atunci ar fi bine.
ArMyFoRHeLL: mersi
Răspuns de stassahul
2
#include <bits/stdc++.h>

using namespace std;

int m,n,a[51][51];

int main()
{

    cin >> m >> n;

    for(int i=1;i<=m;i++)
        for(int j=1;j<=n;j++)
            cin >> a[i][j];

    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
            if(i!=m-1 and j!=n-1)
                cout << a[i][j] << " ";
        if(i!=m-1) cout << endl;
    }

    return 0;
}

ArMyFoRHeLL: la asta m-am gandit si eu la inceput,dar spune sa se modifice matricea nu sa se afiseze ca formatul acela..
Alte întrebări interesante