Почему выводится неверная сумма?
Функция должна подсчитывать сумму строки из матрицы. Подсчет верный, кроме 1 строки, скрин:
Вот фрагмент кода, почему вывод 27, а не 22?
#define x 5
#define y 2
int main()
{
int ** a = (int**)calloc(x, sizeof(int* ));
for (int i = 0; i < x; i++)
a[i] = (int*)calloc(y, sizeof(int));
input_matrix(a, x, y);
for (int i = 0; i < x; i++)
printf("%d\n", sum_row(a[i], y));
}
int sum_row(int* p, int n)
{
int sum;
for (int i = 0; i < n; i++)
sum += *(p+i);
return sum;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Локальные переменные надо инициализировать.
Замените
int sum;
на
int sum = 0;