admin 管理员组

文章数量: 887149


2023年12月25日发(作者:rxjava)

以下是一个使用C语言实现的打擂台算法的示例:

c复制代码

#include

//

定义一个函数指针类型

typedef int (*ComparisonFunc)(int, int);

//

比较函数,用于比较两个整数的大小

int compare(int a, int b) {

if (a < b) {

return -1;

} else if (a > b) {

return 1;

} else {

return 0;

}

}

//

打擂台函数,接受一个比较函数和一个整数数组作为参数

int champion(ComparisonFunc compareFunc, int arr[], int size) {

int champ = arr[0]; //

初始化冠军为数组的第一个元素

for (int i = 1; i < size; i++) {

if (compareFunc(arr[i], champ) > 0) {

champ = arr[i]; //

如果当前元素比冠军大,则更新冠军

}

}

return champ;

}

int main() {

int arr[] = {5, 2, 8, 3, 1};

int size = sizeof(arr) / sizeof(arr[0]);

//

调用打擂台函数,并传入比较函数和数组

int result = champion(compare, arr, size);

printf("冠军是:%dn", result);

return 0;

}

这个示例中,我们定义了一个比较函数compare,用于比较两个整数的大小。然后,我们定义了一个打擂台函数champion,它接受一个比较函数和一个整数数组作为参数,通过遍历数组找到最大的元素作为冠军。最后,在main函数中调用打擂台函数,并输出冠军的值。

请注意,这只是一个简单的示例,你可以根据实际需求进行修改和扩展。


本文标签: 函数 打擂台 数组 作为