Witam.
Próbuję napisać program dodający ostatni i pierwszy wiersz, a także pierwszą i ostatnią kolumnę dwuwymiarowej tablicy o wymiarach n i m.
Napisałem warunek w pętlach i prosiłbym o jego sprawdzenie, czy jest w miarę logiczny.
Dodatkowo wyskakuje mi błąd typu :
passing argument 1 of 'f' from incompatible pointer
Kod programu:
#include <stdio.h>
#include <stdlib.h>
double f(double **tab, int n, int m) {
int i, j;
double suma = 0.0;
for (j = 0; j < m; j = j + (m - 1)) //dodawanie pierwszej i ostatniej kolumny macierzy
for (i = 0; i < n; ++i)
suma += tab[i][j];
for (i = 0; i < n; i = i + (n - 1)) //dodawanie pierwszego i ostatniego wiersza macierzy
for(j = 0; j < m; j++)
suma += tab[i][j];
return suma;
}
int main() {
double tab[4][5] = {
{1.0, 2.0, 3.0, 4.0, 5.0},
{6.0, 0.0, 4.0, 3.0, 1.0},
{7.0, 3.0, 4.0, 6.0, 2.0},
{8.0, 9.0, 3.0, 4.0, 3.0}
};
double wynik = f(tab, 4, 5);
printf("%lf", wynik);
return 0;
}