gpt4 book ai didi

c - C 中二维数组中一行的平均值?

转载 作者:行者123 更新时间:2023-11-30 14:59:05 24 4
gpt4 key购买 nike

我在编写一个使用函数调用来查找二维数组中行的平均值的程序时遇到问题?我无法让它在更大的程序中工作。我编写这个程序是为了尝试找出我做错了什么,但无济于事。任何外部帮助将不胜感激!测试代码如下:

#include <stdio.h>
double dAvg(double pt[][5],int rows);
int main(void){
int i;
//Initiallize array
double array[3][5]={{3.0,5.0,2.0,1.0,0.0},{4.0,8.0,6.0,3.0,3.0},{7.0,6.0,2.0,3.0,5.0}};
//Computes the average value per row of array
for(i=0;i < 3;i++){
printf("The average of row %d is %f",i,dAvg(array,3));
}
return 0;
}
double dAvg(double pt[][5],int rows){
int r,c;
double sum,avg;
//Calculate sum first
for (c=0,sum=0;c<5;c++){
sum += pt[r][c];
//Find average by dividing the sum by the number of numbers in a row
avg=sum/5;
return avg;
}
}

当我运行该程序时,它只是说该程序已停止工作,最重要的是,我不相信一旦第一个问题得到解决,我就能真正工作。我对多维数组相当陌生,尤其是将它们传递给函数。再次感谢您的帮助!

最佳答案

大多数错误都出现在您的 dAvg 函数中:

即:

  1. 如果您只需要一行,则不应传递整个二维数组
  2. 您应该传递数组的长度,而不是在各处对其进行硬编码(好的做法,而不是错误)
  3. 您的 r 未初始化,因此您的索引无法正常工作
  4. 因此,您在每次迭代中返回平均值,而不是对第一次添加的值求和,然后在添加其他值之前返回。
double dAvg(double array[], size_t length){
size_t c;
double sum = 0;

// Calculate sum first
for (c = 0; c < length; c++){
sum += array[c];
}

// Find average by dividing the sum by the number of numbers in a row
return sum / (double) length;
}

int main(void){
int i;
//Initiallize array
double array[3][5] = {{3.0,5.0,2.0,1.0,0.0}, {4.0,8.0,6.0,3.0,3.0}, {7.0,6.0,2.0,3.0,5.0}};

//Computes the average value per row of array
for(i = 0; i < 3; i++){
printf("The average of row %d is %f\n", i, dAvg(array[i], 5));
}

return 0;
}

关于c - C 中二维数组中一行的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43020076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com