#include <stdio.h> #include <math.h>

void transform(double source[], double target[], int num, double (*p)(double)) { for (int i = 0; i < num; i++) { target[i] = (*p)(source[i]); } }

double square(double x) { return x * x; }

int main() { double source[] = {1.0, 2.0, 3.0, 4.0, 5.0}; double target[5];

transform(source, target, 5, sin);
printf("Transform using sin():\n");
for (int i = 0; i < 5; i++) {
    printf("%.2f ", target[i]);
}
printf("\n\n");

transform(source, target, 5, cos);
printf("Transform using cos():\n");
for (int i = 0; i < 5; i++) {
    printf("%.2f ", target[i]);
}
printf("\n\n");

transform(source, target, 5, square);
printf("Transform using square():\n");
for (int i = 0; i < 5; i++) {
    printf("%.2f ", target[i]);
}
printf("\n\n");

return 0;
编写一个transform函数接口约定如下所示:void transformdouble source double target int num double pdouble;它接受4个参数:double类型数据的源数组名double类型的目标数组名表示数组元素个数的int变量函数指针p。transform函数把

原文地址: https://www.cveoy.top/t/topic/ieHO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录