рекурсивная функция, подсчет элементов в массиве

Мне необходимо подсчитать сумму первой и четвертой строки в массиве, однако происходит какая-то проблема в функции sumArray (есть подозрения на if(i<n) и if(i<j)). Cумма s сначала находится верно, а затем идет на уменьшение и превращается в 1. Не знаю, как исправить, надеюсь на вашу помощь. p.s. на первые две функции не смотрите, они страшныевведите сюда описание изображения.

#include<stdio.h
#include<math.h>
#include<stdlib.h>

void inputMatrix(int n, int i, int j, int a[][10]) {
  if (i < n)
    if (j < n)
      printf("(%i,%i)= ", i, j), scanf("%i", & a[i][j]), inputMatrix(n, i, j + 1, a);
    else j = 0, inputMatrix(n, i + 1, j, a);
}
void OutputMatrix(int n, int i, int j, int a[][10]) {
  if (i < n)
    if (j < n)
      printf("%5i", a[i][j]), OutputMatrix(n, i, j + 1, a);
    else {
      puts(" ");
      OutputMatrix(n, i + 1, 0, a);
    }
}

int sumM(int n, int i, int j, int a[][10], int s) {
  if (i < n) {
    if (j < n) {
      {
        if (i == 0 || i == 3) {
          s += a[i][j];
          sumM(n, i, j + 1, a, s);
        } else j = 0;
        sumM(n, i + 1, j, a, s);
      }
    }

  }
  if (i == n - 1) {
    printf("\n%i", s);

  }
  return s;
}

int main() {
  int c[10][10], s;
  float medium;
  inputMatrix(4, 0, 0, c);
  OutputMatrix(4, 0, 0, c);
  s = sumM(4, 0, 0, c, 0);
  printf("\nsum= %i", s);
  puts("\n");
  system("pause");
}

Ответы (0 шт):