gpt4 book ai didi

arrays - 这是一个C代码,可使用函数在50个元素的数组中查找平均值

转载 作者:行者123 更新时间:2023-12-03 07:37:40 24 4
gpt4 key购买 nike

#include <stdio.h>
#include <stdlib.h>
float Findaverage(float n,float numbers[]) {
float sum = 0;
for (int j = 0; j < n; j++) {
sum += numbers[j];
}
printf("The average number of the array is: %f", sum/n);

}




int main() {
int sum = 0;
float numbers[50];
float average;
printf("Enter 50 elements: ");
// taking input and storing it in an array
for(int i = 0; i < 50; ++i) {
scanf("%f", &numbers[i]);
}
average = Findaverage(50,numbers[50]);
printf("\nThe average number of the array is: %f", average );

return 0;
}
输出给出错误“将'float'传递给不兼容类型'float *'的参数;以&开头的地址”。为什么是这样?

最佳答案

对于初学者,函数Findaverage不返回任何内容。
您需要将此语句添加到函数中

return sum / n;
并且第一个参数应具有整数类型,而不是 float类型。
float Findaverage(float n,float numbers[]) {
^^^^^
其次在此函数的调用中
average = Findaverage(50,numbers[50]);
具有 numbers[50]类型而不是 float类型的参数 float *无效。你需要写
average = Findaverage(50,numbers);
可以通过以下方式声明和定义函数
double Findaverage( const float numbers[], size_t n ) 
{
double sum = 0.0;

for ( size_t i = 0; i < n; i++ )
{
sum += numbers[i];
}

return n == 0 ? 0.0 : sum / n;
}
函数可以像
double average = Findaverage( numbers, sizeof( numbers ) / sizeof( *numbers ) );

关于arrays - 这是一个C代码,可使用函数在50个元素的数组中查找平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64670217/

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