Informatică, întrebare adresată de Kitty2282, 8 ani în urmă

se considera o matrice cu m linii si n coloane

se cere:

suma elementelor din matrice care au 3 vecini

suma elementelor din matrice care au 5 vecini

suma elementelor din matrice care au 8 vecini

exemplu:

date.in

3 4

1 2 3 4

5 6 7 8

9 1 2 3

date.out

17

21

13
rezolvare in c++


1Viserys: citirea din fisier sau de la tastatura? ca vad ca scrierea e in fisier
Kitty2282: Fisier
Kitty2282: E ok si de la tastatura, ma intereseaza algoritmul

Răspunsuri la întrebare

Răspuns de 1Viserys
0

ideea e asa: vecini ai pe lungime, latime si diagonale.

este important sa observi 3 lucruri

1. 3 vecini au DOAR elementele din colturi

2. 5 vecini au DOAR elementele de pe prima/ultima linie/coloana, care in plus nu sunt colturi

3. restul au cate 8 vecini.

dupa ce intelegi asta, restul e simplu, vezi doar cum alegi indicii pt sume


#include <iostream>

#include <fstream>

using namespace std;

int main()

{

ifstream f;

f.open("fisier1.in");

int l, c, A[100][100], suma3=0, suma5=0, suma8=0;

f>>l>>c;

for(int i=0; i<l; i++)

for(int j=0; j<c; j++)

{

f>>A[i][j];

if((i==0 && j==0) || (i==0 && j==c-1) || (i==l-1 && j==0) || (i==l-1 && j==c-1)) suma3=suma3+A[i][j];

else if(i==0 || i==l-1 || j==0 || j==c-1) suma5=suma5+A[i][j];

else suma8=suma8+A[i][j];

}

ofstream o;

o.open("data.out");

o<<suma3<<" "<<suma5<<" "<<suma8;

f.close();

o.close();

return 0;

}


Alte întrebări interesante