有一个一维数组a,大小为n并且赋有初值,函数float process (float *p, int n, float (p)())为一个通用
的函数完成一下功能,请编程完成下述功能函数
1.float arr_add(float a[], int n)
2.float add_add(float p, int a);
供参考:
#include <stdio.h>
float process(float* p, int n, float (*f)(float*,int));
float arr_add(float a[], int n);
float add_add(float *p, int a);
int main()
{
int n = 5;
float a[5] = { 1,2,3,4,5 };
printf("sum(arr_add)=%f\n", process(a, n, arr_add));
printf("sum(add_add)=%f\n", process(a, n, add_add));
}
float arr_add(float a[], int n)
{
int i;
float sum = 0;
for (i = 0; i < n; i++)
sum += a[i];
return sum;
}
float add_add(float* p, int a)
{
int i = 0;
float sum = 0;
while (i < a) {
sum += *(p + i);
i++;
}
return sum;
}
float process(float* p, int n, float (*f)(float*, int))
{
return (*f)(p, n);
}
你得说明一下这两个函数的功能啊
process函数干啥的?arr_add和add_add函数又是干啥的?相互之间有啥关系?