已知数字的位置关系,怎么放到一个数组里

 我来答
折柳成萌
高粉答主

2018-01-05 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:6271万
展开全部
首先,编写一个“过滤器”函数:

/*以“把奇数放到另一个数组”为例*/int is_odd(int number) { return number % 2 == 1;}

然后,编写主函数:

/*返回符合条件的数的个数*/size_t put_conditional( int * dest, /*目标数组*/ const int * source, /*原数组*/ size_t n, /*原数组所含元素个数*/ int (*filter)(int) /*“过滤器”函数指针,指向的函数当符合某条件时返回非零值,否则返回零*/ ) { int * start = dest; const int * end = source + n; while (source < end) { if ((*filter)(*source)) /*如果符合条件*/ *dest++ = *source; /*那么就放到dest指向的数组中*/ source++; } return dest - start;}

调用的时候:

int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, b[10];size_t i, n;n = put_conditional(b, a, 10, is_odd); /*把a数组中的奇数放到b数组中*/for (i = 0; i < n; i++) { printf("%d ", b[i]); /*把a数组中的奇数打印出来*/}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式