не считает сумму
void f1(int **arr, int n, int m, int sum, int k ){
for (int j = 0; j < m; j++)
{
sum = 0;
k = 0;
for (int i = 0; i < n; i++)
{
sum += arr[i][j];
}
if (sum > 0)
{
k++;
}
}
}
Ответы (1 шт):
Автор решения: versetty777
→ Ссылка
У вас сумма и k не используются за пределами цикла, поэтому результаты суммирования и инкрементирования не сохраняются и не возвращаются из функции. Чтобы исправить это, лучше объявить сумму и k как переменные функции, а не как локальные переменные цикла:
int* f1(int **arr, int n, int m ){
int sum = 0;
int k = 0;
for (int j = 0; j < m; j++)
{
for (int i = 0; i < n; i++)
{
sum += arr[i][j];
}
if (sum > 0)
{
k++;
}
}
int res[2] = {sum,k};
return res;
}
Но в этом случае необходимо будет объявить res как глобальную переменную или выделить ей память на стеке.