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

Cerinţa
Se dă o matrice cu n linii şi m coloane şi elemente numere naturale distincte două câte două. Să se elimine din matrice linia și coloana pe care se află elementul maxim și linia și coloana pe care se află elementul minim.

Date de intrare
Programul citește de la tastatură numerele n şi m, iar apoi n*m numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.

Date de ieşire
Programul afișează pe ecran elementele matricei transformate, câte un linie a matricei pe o linie a ecranului, elementele de pe o linie fiind separate prin câte un spațiu.

Restricţii şi precizări
1 ≤ m,n ≤ 100
elementele matricei vor fi mai mici decât 1.000.000


Matee15: a9-a
Matee15: repedeee tee roooog
Matee15: multumeesc
blindseeker90: raspunsul lui Teacher Joe este gresit. Nu are nici o legatura cu cerinta problemei.

Răspunsuri la întrebare

Răspuns de Utilizator anonim
1
#include <iostream>
using namespace std;
const int NMAX = 1000;
int n, m;
int v[NMAX][NMAX];
int main()
{
    cin >> n >> m;
    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++)
            cin >> v[i][j];

   cout << "Matricea originala:\n\n";
    for(int i=1; i<=n; i++) {
        for(int j=1; j<=m; j++)
            cout << v[i][j] << ' ';
        cout << '\n';
    }

    for(int i=1; i<=n; i++)
        for(int j=1; j<=m-1; j++)
            swap(v[i][j], v[i][j+1]);

    cout << "Matricea modificata:\n\n";
    for(int i=1; i<=n; i++) {
        for(int j=1; j<=m; j++)
            cout << v[i][j] << ' ';
        cout << '\n';
    }

    return 0;
}
------------------------------------------------succes!---------------------------------------

blindseeker90: Raspunsul tau nu este corect. Nu ai determinat linia si coloana pe care se afla elementul minim sau elementul maxim. Nu ai eliminat o linie sau o coloana, doar ai schimbat intre ele niste coloane.
Răspuns de blindseeker90
3
#include <iostream>
#include <limits.h>
using namespace std;
int main(){

int n,m,a[100][100],rez[100][100],nr_lin=0,nr_col=0,nr_max_col,i,j,max=0,min=INT_MAX,linie_min,linie_max,col_min,col_max,linie,col;
cout<<"Introduceti dimensiunile matricii:";
cin>>n>>m;
cout<<"Introduceti matricea:\n";
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cin>>a[i][j];
}
}
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(a[i][j]>max){
max=a[i][j];
linie_max=i;
col_max=j;
}
if (a[i][j]<min){
cout<<i<<" "<<j<<endl;
min=a[i][j];
linie_min=i;
col_min=j;
}
}
}
cout<<"Elementul maxim "<<max<<" se afla pe linia "<<linie_max+1<<" si coloana "<<col_max+1<<endl;
cout<<"Elementul minim "<<min<<" se afla pe linia "<<linie_min+1<<" si coloana "<<col_min+1;
    
    cout<<"Noua matrice\n";
    for(i=0;i<n;i++){
     nr_col=0;
     if(i!=linie_max&&i!=linie_min){    

for(j=0;j<m;j++){
     if(j!=col_max&&j!=col_min){
rez[nr_lin][nr_col]=a[i][j];
nr_col++;    
}
}
nr_lin++;
nr_max_col=nr_col;
}
}

    for(i=0;i<nr_lin;i++){
     for(j=0;j<nr_max_col;j++){
     cout<<rez[i][j]<<" ";
}
cout<<endl;
}
    
return 0;
}
Alte întrebări interesante