Wpis z mikrobloga

#cpp #programista #cplusplus #pomocy

Potrzebuję pomocy. Mam dane zadanie i o ile nie mam problemu z tablicami to wplecenie w to funkcji w taki sposób jaki mam zadany sprawia mi kłopot.

Wczytać dane do tablic a[N] [N] i b[N] [N], gdzie N to dowolna stała. 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. Wydrukować różnicę między tymi sumami.

Wiem, że funkcja ma zawierać 3 dane wejściowe ('która tablica, ile kolumn do zliczenia, przez jaką liczbę podzielne liczby), ale nie wiem jak to zrobić.
  • 7
int zliczkolumny(int tablica[n][n], int ilekolumn, int dzielnik)
{
int suma{};
for (int i = 0; i < n; i++)
{
for (int i2 = 0; i2 < ile_kolumn; i2++)
{

if (tablica[i][i2] % dzielnik == 0)
suma+=tablica[i][i2];
}

}
return suma;
}
@Czarny_muflon: Dzieki za odpowiedz :)

stworzylem cos takiego i mi to zle zlicza:
using namespace std;
int c,d,roznica;
const int n=3;
int a[n][n];
int b[n][n];
int zliczkolumny(int tablica[n][n], int ilekolumn, int dzielnik)
{
int suma;

{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < ile
kolumn; j++)
if (tablica[i][j] % dzielnik == 0)
suma=suma+tablica[i][j];

}

}
return suma;
}

int main()
@rtoz:

Powinno być "int suma{};", a nie "int suma;" - wtedy będzie działać. Jeśli tak wpiszesz to zmienna zostanie zainicjalizowana właściwym zerem (np. dla double byłoby to 0.0). (Bez inicjalizacji, przy zmiennych lokalnych, nie ma pewności jaka wartość znajdzie się tam na początku). Dodatkowo {} niepozwala na niejawne konwersje mogące spowodować, potencjalnie, utratę części wartości zmiennej np. z double na int.
@rtoz:

Inicjalizację za pomocą {} wprowadzono w c++11
Niektóre kompilatory.(a na pewno g++) wymagają dodatkowego infa przy kompilacji, że chcesz z niego korzystać. Dopisanie takiej komendy, albo zamiana na int suma = 0 powinno rozwiązać sprawę.
@Czarny_muflon: Faktycznie miałeś rację, działa. :) byłem przekonany i w zasadzie teraz jestem aż zmieszany, bo probowalem z {} jak i bez... chyba wczoraj nie był mój dzień po prostu :) w każdym razie po prostu dzięki :)