No to tak:
Wczytać dane do tablic a[N] [N] i b[N] [N], gdzie N to dowolna stała
Czyli na początku tworzysz sobie stałą (możesz nazwać ją również N) i tablice dwuwymiarowe a i b.
const int N = 5;
int a[N];
int b[N];
W tablicy a obliczyć za pomocą funkcji sumę elementów podzielnych przez 5 w 3 pierwszych kolumnach, zaś w tablicy b obliczyć sumę elementów podzielnych przez 2 w 4 pierwszych kolumnach.
Czyli jak widać, schemat działania dla obu tablic jest ten sam. Tak jak napisałeś, najlepiej będzie skorzystać z funkcji. Jako jeden z parametrów podasz tablicę (tutaj mogą być pewne ograniczenia, zaraz do tego przejdę), następny - liczba kolumn i ostatni - liczba, przez którą dany element tablicy ma być podzielny.
W C++ generalnie lepiej jest używać kontenerów takich jak std::vector, std::array i tak dalej. Natomiast rozumiem, że to jakieś szkolne zadanie i nauczyciel/wykładowca preferowałby, aby zostały użyte zwykłe tablice.
Jest kilka sposobów na przekazanie kilkuwymiarowej tablicy do funkcji, ta metoda może nie jest najlepsza, ale dostosowuję ją do takich szkolnych "wymagań":
#include <iostream>
const int TAB_SIZE = 3;
void print(int tab[TAB_SIZE][TAB_SIZE])
{
for (int i = 0; i < TAB_SIZE; ++i)
{
for (int j = 0; j < TAB_SIZE; ++j)
{
std::cout << tab[i][j] << ' ';
}
std::cout << "\n";
}
}
int main()
{
int tab[TAB_SIZE][TAB_SIZE] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
print(tab);
}
Jak mówiłem, można by to zrobić lepiej, choćby poprzez szablony, ale nie chcę Ci zbyt dużo mieszać, bo nie wiem czy o nich już zdążyłeś usłyszeć.
Rozjaśniła Ci coś ta wypowiedź? Jak coś to pytaj, chętnie pomogę.
A więc twoja funkcja mogłaby wyglądać tak:
const int N = 5;
// ...
int count(int tab[N][N], int columns, int divider)
{
/*
A tutaj kodzik, który przejeżdża sobie po wszystkich elementach tablicy
o kolumnie mniejszej lub równej <columns> i sprawdzający, czy jest podzielna
przez dzielnik <divider>. Jeśli tak, to dodaje ją do zmiennej sum
(zainicjalizowanej na początku funkcji na 0). Po sprawdzeniu wszystkich odpowiednich elementów
Funkcja zwraca wynik */
}
A tak na koniec - gdybyś zastanawiał się jak sprawdzić, czy liczba jest podzielna przez inną, użyj operatora modulo.
int x = 4;
if (x % 3 == 0)
{
std::cout << "Podzielna przez 3!";
}
if (x % 2 == 0)
{
std::cout << "Podzielna przez 2!";
}
Oczywiście powyższy kodzik też jest dość poglądowy. Po prostu - jeśli wynik operacji modulo będzie równy 0 (reszta z dzielenia będzie równa 0 - czyli inaczej, nastąpi dzielenie bez reszty), to znaczy, że liczba jest podzielna.