Mam rozumieć, że zliczanie tych "0", o których piszesz ma dotyczyć jedynie komórek tablicy, w których zera występują "samodzielnie", a nie np. komórek w tablicy o wartości 100, gdzie również występują zera, ale w odniesieniu do liczby 100?
Aby zniwelować nadmiar kodu, sprawdzanie czy cyfra '0' wystąpiła w tablicy, można już zaimplementować zaraz po wprowadzeniu wartości komórki przez użytkownika, w tej samej pętli. Działający kod zamieszczam poniżej:
#include <iostream>
using namespace std;
int main() {
const int n = 4, m = n;
int tab[n][m];
int x, szukana = 0, wynik = 0;
for (int i = 0; i <= n - 1; i++) {
for (int j = 0; j <= m - 1; j++) {
cout << "a[" << i << "][" << j << "] = ";
cin >> tab[i][j];
if (tab[i][j] == szukana)
wynik++;
}
}
if (wynik == 0)
cout << endl << "Brak " << szukana << " w tablicy";
else
cout << endl << "Wartosc " << szukana << " wystepuje w tablicy " << wynik << " razy";
getchar();
getchar();
return 0;
}