У меня есть следующая программа.
#include <stdio.h>
double getAverage(int *arr[], int size) {
int i, sum = 0;
double avg;
for (i = 0; i < size; ++i)
{
printf("%d %d\n", i, arr[i]);
sum = sum + arr[i];
}
printf("%d\n", sum);
avg = (double)sum / size;
return avg;
}
int main ()
{
/* an int array with 5 elements */
int balance[5] = {1000, 2, 3, 17, 50};
double avg;
/* pass pointer to the array as an argument */
avg = getAverage( balance, 5 ) ;
/* output the returned value */
printf("Average value is: %f\n", avg );
return 0;
}
Вывод неправильный.Когда я печатаю значения * arr [], они не совпадают со значением баланса.Знаете ли вы, почему и как я могу исправить эту программу?
0 1000
1 3
2 50
3 0
4 0
256992
Average value is: 51398.400000