编写一个MergeArray函数,包含数组指针a,数组起点begin,数组中点mid,数组终点end,承载数组指针temp
时间: 2024-06-01 11:12:14 浏览: 36
void MergeArray(int* a, int begin, int mid, int end, int* temp){
int i = begin;
int j = mid+1;
int k = begin;
while(i<=mid && j<=end){
if(a[i]<a[j]){
temp[k++] = a[i++];
}
else{
temp[k++] = a[j++];
}
}
while(i<=mid){
temp[k++] = a[i++];
}
while(j<=end){
temp[k++] = a[j++];
}
for(int t=begin; t<=end; t++){
a[t] = temp[t];
}
}
相关问题
C语言,如何编写一个void型的函数指针数组,并且传入参数
在C语言中,你可以使用`void(*)()`这样的函数指针类型来定义一个无返回值且不需要参数的函数指针数组。这里是一个简单的例子:
```c
#include <stdio.h>
// 定义一个无参数、无返回值的函数类型
typedef void(*NoParamsFunc)();
// 定义函数指针数组
void (*funcPointers[])() = {&printHello, &printGoodbye};
// 函数示例
void printHello() {
printf("Hello from a function.\n");
}
void printGoodbye() {
printf("Goodbye from another function.\n");
}
int main() {
// 调用函数指针数组中的元素
funcPointers[0](); // 执行printHello()
funcPointers[1](); // 执行printGoodbye()
return 0;
}
```
在这个例子中,`funcPointers`数组包含两个函数指针,分别指向`printHello`和`printGoodbye`两个函数。在`main`函数里,通过数组索引来调用这些函数。
C语言 定义一个void型的函数指针数组,并调用该函数指针数组内的成员
在C语言中,如果你想定义一个`void`型的函数指针数组,可以按照下面的方式:
```c
#include <stdio.h>
// 定义函数原型
typedef void (*myFunctionType)(void);
// 定义函数指针数组
myFunctionType functionArray[2] = {
myFunctionOne, // 第一个元素
myFunctionTwo // 第二个元素
};
// 假设有两个函数定义,类似这样
void myFunctionOne(void) {
printf("这是myFunctionOne\n");
}
void myFunctionTwo(void) {
printf("这是myFunctionTwo\n");
}
// 调用函数指针数组内的成员
void callFunctions() {
// 调用第一个函数
functionArray[0]();
// 调用第二个函数
functionArray[1]();
}
int main() {
callFunctions(); // 主函数里调用函数指针数组
return 0;
}
```
在这个例子中,`functionArray`是一个存储`void`型函数指针的数组,每个元素都是一个指向`void`型函数的指针。`callFunctions()`函数会依次调用数组中的两个函数。
阅读全文