在coursera结课习题遇到下面程序,需要将函数名作为实参传入。相应的函数声明时,需要注意函数的返回值,函数的形参表。
#include <iostream>
using namespace std;
int sum(int a[], int n, int (*sqr)(int)) {
int sum = 0;
for(int i = 0; i < n; i++){
sum += sqr(a[i]);}
return sum;
}
int sqr(int n) {
return n * n;
}
int main() {
int t, n, a[0x100];
cin >> t;
for (int c = 0; c < t; ++c) {
cin >> n;
for (int i = 0; i < n; ++i) cin >> a[i];
cout << sum(a, n, sqr) << endl;
}
return 0;
}