您的位置:首页 > 编程语言

有两个10个元素的数组,分别为A和B,编程实现相同位置的元素, 如果 B 的元素小于 A 的元素进行数值交换:(使用回调函数实现)

2015-06-25 21:23 891 查看
main

int array_1[10] = {0};

int array_2[10] = {0};

setArray(array_1, 10);

setArray(array_2, 10);

printfArray(array_1, 10);

printfArray(array_2, 10);

changleArray(array_1, array_2, 10, swap);

printfArray(array_1, 10);

printfArray(array_2, 10);

.h

typedef BOOL (*CHANGLE)(int a[], int b[]);

void setArray(int a[], int count);

void printfArray(int a[], int count);

BOOL swap(int a[], int b[]);

void changleArray(int a[], int b[], int count, CHANGLE p);

.m

void setArray(int a[], int count){

for (int i = 0; i < count; i++) {

a[i] = arc4random()%51 + 10;

}

}

void printfArray(int a[], int count){

for (int i = 0; i < count; i++) {

printf("%d ", a[i]);

}

printf("\n\n");

}

BOOL swap(int *a, int *b){

return *a > *b ? YES : NO;

}

void changleArray(int a[], int b[], int count, CHANGLE p){

for (int i = 0; i < count; i++) {

if (p(&a[i], &b[i])) {

int temp = a[i];

a[i] = b[i];

b[i] = temp;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: