👤

Am nevoie de ajutor la o problema de informatica.
Se da un tablou bidimensional cu m linii si n coloane (1<=m, n>=50) avand componente intregi. Se cere sa se calculeze suma componentelor de pe marginea tabloului.


Răspuns :

int m,n,a[10][10],i,j,s=0; cin>>m>>n; (...) - stii sa citesti matrice... sper for(i=0; i
#include <iostream>
using namespace std;
int main(){
    int m, n, i, j, s=0;
    cout<<"m="; cin>>m;
    cout<<"n="; cin>>n;
    int v[m][n];
    for(i=0;i<m;i++)
        for(j=0;j<n;j++){
            cout<<"v["<<i<<"]["<<j<<"]=";
            cin>>v[i][j];
        }
    if(m==1){
        //Daca matricea e facut doar dintr-o singura linie
        for(i=0;i<n;i++){
            s+=v[0][i];
        }
    }else if(n==1){
        //Daca matricea e facut doar dintr-o singura coloana
        for(i=0;i<m;i++){
            s+=v[i][0];
        }
    }else{
        //Daca matricea are mai multe linii si coloane
        //Linia de sus si de jos:  (m este 0 si (m-1))
        for(i=0;i<n;i++) s+=v[0][i];
        for(i=0;i<n;i++) s+=v[m-1][i];
        //Coloana din dreapta/stanga fara primul/ultimul element  (n este 0 si (n-1))
        for(i=1;i<m-1;i++) s+=v[i][0];
        for(i=1;i<m-1;i++) s+=v[i][n-1];
    }

    cout<<"s="<<s;
    return 0;
}