ReordeArray

来源:互联网 发布:四等水准仪测量数据 编辑:程序博客网 时间:2024/06/06 09:03
#include<stdio.h>bool isEven(int n){return (n&1)==0;}void Reorder(int *pData,int length,bool (*fun)(int)){if(pData==NULL||length==0) return;int temp;int *p=pData;int *q=pData+length-1;while(p<q){while(p<q&&!fun(*p))p++;while(p<q&&fun(*q))q--;temp=*p;*p=*q;*q=temp;}}void Print(int* pData,int length){int* p=pData;int i=0;while(i<length){printf("%3d",*(p+i));i++;}printf("\n");}void main(){int data[]={1,2,3,4,5,6};Reorder(data,6,isEven);Print(data,6);int data_1[]={2,4,6,7,1,3,5};Reorder(data_1,7,isEven);Print(data_1,7);int numbers[] = {2};Reorder(numbers,1,isEven);Print(numbers,1);Reorder(NULL,0,isEven);Print(NULL,0);}

0 0
原创粉丝点击