C newb ie здесь. Частью лабораторного задания является отладка следующего кода. Вместо ожидаемого результата 30 (сумма квадратов 0, 1, 2, 3 и 4), он дает результат где-то между 32 794 и 32 797. Благодаря использованию отладчика в функции sumValues переменная ii на первой итерации превышает 4 миллиона, и я действительно не уверен, почему. Держу пари, это что-то про процессы инициализации C:
#include <stdio.h>
int sumValues(int v[], int length);
int main(void)
{
int val[5], n;
for (n = 0; n < 5; n++)
val[n] = n * n;
printf("the sum of entered values is %d", sumValues(val, 5)
return 0;
}
int sumValues(int a[], int size)
{
int sum, ii;
sum = 0;
ii = 0;
for (ii = 0; ii <= size; ii++)
sum += a[ii];
return sum;
}
(Как обычно, понимание очевидной вещи, которую я не могу найти, очень ценится. Спасибо!)