рекурсивная функция, подсчет элементов в массиве
Мне необходимо подсчитать сумму первой и четвертой строки в массиве, однако происходит какая-то проблема в функции 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");
}