问题描述
#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 *'的参数;以&开头的地址”。为什么会这样?
解决方法
对于初学者来说,函数def save_image(self,image):
cv2.imwrite("/Users/scannedimage.jpg",image)
return "/Users/scannedimage.jpg"
def process_image(self,img):
image = self.save_image(img)
processed_image = ProcessImage().process(image)
saved_image = self.save_image(processed_image)
self.show_processed_image(saved_image)
def show_processed_image(self,image):
self.video_panel.pack_forget()
image_path = Image.open(image)
image = ImageTk.PhotoImage(image_path)
self.logo_panel = tk.Label(main,image = image)
self.logo_panel.pack()
不返回任何内容。
您需要将此语句添加到函数中
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;
}
,
更改
col
time
2018-11-13 10:00:00 e
2018-11-13 15:00:00 f
2018-11-13 16:00:00 g
到
average = Findaverage(50,numbers[50]);
average = Findaverage(50,numbers);
是指单个数组元素,而不是整个数组。它也是数组末尾(索引从numbers[50]
到0
)之一。