Задача - проверить сумму нечетных чисел в 4-м и втором-последнем столбцах матрицы.
Это должна быть рекурсивная функция. В результате компиляции отображаются нечетные элементы, но возникают проблемы с вычислением суммы и подсчетом количества нечетных элементов в указанных столбцах c.
Также, когда число столбцов равно количеству строк, результат каждой функции равен 0.
int sumOfOdds(int n, int m, int i, int j, int a[][m], int sum) {
if (i<n)
{
if ((a[i][j]%2) == 1) {
printf("\nSUMThe odd element is: %i", a[i][j]);
sum+=a[i][j];
return sumOfOdds(n, m, i+1, j, a, sum);
}
else {
++i;
return sum;
}
}
}
int counterOfOdds(int n, int m, int i, int j, int a[][m], int count) {
if (i<n)
{
if ((a[i][j]%2) == 1) {
printf("\nCOUNTThe odd element is: %i", a[i][j]);
count++;
return counterOfOdds(n, m, i+1, j, a, count);
}
else {
++i;
return count;
}
}
}
c1 = 0, c2 = 0; они счетчики; s1 = 0, s2 = 0; они сумма; Вот как выглядит вызов функций:
printf("\nThe sum of odd numbers is the 4th column is: %i", sumOfOdds(n, m, 0, 3, a, s1));
printf("\nThe number of odd elements in the 4th column is: %i", counterOfOdds(n, m, 0, 3, a, c1));
printf("\nThe sum of odd numbers is the second-to-last column is: %i", sumOfOdds(n, m, 0, preLast, a, s2));
printf("\nThe number of odd elements in the second-to-last column is: %i", counterOfOdds(n, m, 0, preLast, a, c2));
Буду благодарен за любые предложения, потому что я понимаю, что проблема заключается в теле операторов if-else в функциях, но я Мы испробовали каждое решение, о котором я думал, и оно не сработало.