Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 给出的数组长度不正确_C - Fatal编程技术网

C 给出的数组长度不正确

C 给出的数组长度不正确,c,C,这是用于查找函数中作为数组传递的数字的平均值的代码,但它在调用时给出了不正确的数组长度。已知数组已转换为指针,但是否有方法在函数中查找数组长度(除main外) #包括 整数和(整数ar[]{ int平均值=0; int size=sizeof(ar)/sizeof(ar[0]); printf(“\n数组的大小为:%d”,大小); 对于(inti=0;i您是通过引用传递数组(C不允许通过值传递数组) 因此,sizeof(ar)的大小只不过是整数指针的大小 我建议将数组大小作为单独的参数传递 --

这是用于查找函数中作为数组传递的数字的平均值的代码,但它在调用时给出了不正确的数组长度。已知数组已转换为指针,但是否有方法在函数中查找数组长度(除main外)

#包括
整数和(整数ar[]{
int平均值=0;
int size=sizeof(ar)/sizeof(ar[0]);
printf(“\n数组的大小为:%d”,大小);

对于(inti=0;i您是通过引用传递数组(C不允许通过值传递数组)

因此,
sizeof(ar)
的大小只不过是整数指针的大小

我建议将数组大小作为单独的参数传递

---编辑-----


int-sum(int-ar[]){
int-sum(int*ar){

相同,如果我在主函数中使用相同的计算公式,那么它给出了正确的size@JosephSible-(是的,你可以对某些exent说,但如果我们想1,不清楚如何在函数中打印长度)我们不喜欢截图,使用复制粘贴2)我们大多数人对“i”或“u”感到发痒,请尽快修改你的写作风格。
#include <stdio.h>
int sum(int ar[]){
    int avg=0;
    int size= sizeof(ar) / sizeof(ar[0]);
    printf("\nThe size of the array is: %d",size);
    for(int i=0;i<size;i++){
        avg+=ar[i];
        // print("\n%d",avg);
    }
    return avg;
}

int main(int argc, char const *argv[])
{
    int average;
    int array[5]={1,2,3,4,5};
    average=sum(array);
    printf("\nThe average of the values in the array is: %d",average);
    return 0;
}