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

URGENT!!!!!!!
Cerinţa
Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Determinați suma valorilor pare distincte din matrice. Dacă o valoare pară apare în matrice de mai multe ori, se va aduna o singură dată.

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 suma căutată S.

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

Exemplu
Date de intrare

4 6
4 20 15 23 18 9
1 8 23 22 14 18
17 15 13 18 12 15
3 18 8 20 12 5
Date de ieșire

98

#768

Răspunsuri la întrebare

Răspuns de MrXDead
0
#include "stdafx.h"
#include "iostream"

using namespace std;

void main()
{
 int m, n, contor = 0,suma = 0;
 int*mat;
 int*arr;
 bool eDistinct;

 do{
  cin >> n >> m;
  if ((n > 100 || n < 0) || (m > 100 || m < 0)) {
   cout << "Introduceti numere de la 0 la 100";
  } 
} while ((n > 100 || n < 0) || (m > 100 || m < 0));

 mat = new int[n,m];
 arr = new int[n*m];

 cout << "Introduceti numerele:\n";

 for (int i = 0; i < n; i++) {
  for (int j = 0; j < m; j++) {   do {
    cin >> mat[i, j];

    if (mat[i, j] > 10000 || mat[i, j] < 0) {
     cout << "Numerele trebuie sa fie mai mici ca 10000!\n";
    }
   } while (mat[i, j] > 10000 || mat[i,j] < 0);

   if (mat[i, j] % 2 == 0) {
    eDistinct = true;

    for (int g = 0; g < contor; g++) {
     if (arr[g] == mat[i,j]) {
      eDistinct = false;
     }
    }
    if (eDistinct || contor == 0) {
     arr[contor] = mat[i, j];
     contor = contor + 1;
    }
   } 
 }
 }

 for (int i = 0; i < contor; i++) {
  suma = suma + arr[i];
 }

 cout << "Suma este:"<<suma << endl << endl;

 system("pause");

 delete mat;
 delete arr;
}

MrXDead: Este putin 'messy' dar functioneaza.
Alte întrebări interesante