![](/img/trans.png)
[英]I wrote a C program to calculate the standard deviation of an array. My code is giving the wrong answer. What am I doing wrong?
[英]Why is the program giving a wrong answer, when I am trying to find maximum of an array using call by reference?
我想写一个 function,它给了我一个数组的最大值,它应该是通过引用调用。 这是我的代码:
void max_array (int *array[], int len, int *max){
for (int i = 0; i < len; ++i) {
if (*max < &array[i]){
*max = array[i];
}
}
}
int main() {
void print_array (int array [], int len);
int array[] = {5,3,2,6,4,6,1};
int len = 8;
int max = 0;
max_array(array, len, &max);
printf("Max of Array: %d \n", max);
return 0;
}
就像你看到有什么不对劲。 我的 Output 就像 158879987 这样的地址。
您将 8 存储在变量 len 中,但是您的数组只有 7 个元素。
在 function 中,您错误地指定了第一个参数。 Arrays 总是通过引用传递,你不需要 * 和 [],选择一个。
void max_array (int *array, int len, int *max){
for (int i = 0; i < len; ++i) {
if (*max < array[i]){
*max = array[i];
}
}
}
请记住更改 len 变量中的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.