C简单的问题,从数组中得到每个分量的平均值相加



这是一个c代码,用于获取数组组件相加的平均值。但一旦我运行了这个,它就不会输出任何东西。

有人能帮我找出代码哪里错了吗?

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
double solution(int arr[], size_t arr_len);
int main()
{
int array[10] = { 1,2,3,4,5,6,7,8,9,10 };
int length = sizeof(array[10]);
double out = solution(array, length);
printf("solution is %fn", out);
return 0;
}
double solution(int arr[], size_t arr_len) {

double answer = 0;
int total = 0;
for (int i = 0; i < arr_len;){
total += arr[i];
}
answer = total / arr_len;
return answer;
}

您没有增加solution中的循环计数器,因此它被困在一个无限循环中。

for (int i = 0; i < arr_len;){

需要

for (int i = 0; i < arr_len; i++) {

编辑:

sizeof也是错误的。它返回数组使用的总内存。所以你需要做

int length = sizeof(array) / sizeof(array[0])

它将总内存除以一个元素的大小,得出元素的总数。

最新更新