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

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ăspunsuri la întrebare

Răspuns de andrimeghe
3
int m,n,a[10][10],i,j,s=0; cin>>m>>n; (...) - stii sa citesti matrice... sper for(i=0; i

andrimeghe: Daca nu merge incearca aici:
andrimeghe: http://pastebin.com/EFPKfteR
artur99: +1 for pastebin, lol
artur99: Doar ca vezi ca nu va functiona daca este o singura linie, si vezi ca daca faci stocarea de la 0, v[m][i] nu exista
Răspuns de artur99
2
#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;
}
Alte întrebări interesante