/*
//2. (***)有两个10个元素的数组,分别为A和B,编程实现相同位置的元素, 如果 B 的元素小于 A 的元素进行数值交换:(使用回调函数实现)
*/
首先声明两个文件,.h文件和.m文件进行实现
在.h文件声明方法如下
声明方法
//声明回调指针
typedef BOOL (*tes)(int a[],int b[]);//指针重命名
void Arrla(int a[],int b[],tes p); //声明方法
BOOL huidiaos(int a[],int b[]);//声明回调方法
.m文件实现如下
BOOL huidiaos(int a[],int b[])
{
return *b>*a?YES:NO;
};
void Arrla(int a[],int b[],tes p){
for (int i = 0; i<10; i++) {
a[i]=arc4random()%21+0;
b[i]=arc4random()%21+0;
printf("a=%d b=%d \n",a[i],b[i]);
}
for (int i = 0; i<10; i++) {
if (p(&b[i],&a[i])) {
int temp= b[i];
b[i]=a[i];
a[i]=temp;
}
}
for (int i = 0; i<10; i++) {
printf("a%d b=%d ",a[i],b[i]);
}
};
在main方法调用如下
int a[10]={0};
int b[10]={0};
Arrla(a,b,huidiaos);