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