- UID
- 65644
注册时间2010-2-18
阅读权限20
最后登录1970-1-1
以武会友
该用户从未签到
|
本帖最后由 ngm20 于 2011-1-13 07:35 编辑
- #include<stdlib.h>
- void initial(int * pl,int n);/*初始化数组*/
- void sortintlist(int * pl,int n,char * type);/*排序调用函数*/
- void sortstol(int * pl,int n );/*从小到大排序*/
- void sortltos(int * pl,int n );/*从大到小排序*/
- void sortlx(int * pl,int n );/*乱序*/
- void change(int * pl,int * ph);/*交换二个数的位置*/
- void sortshow(int * pl,int n );/*显示数组元素*/
- int mycmpstr(char * pl,char *ph);/*比较字符串*/
- main( )
- {
- int n;
- int * pl;
- printf("how many integer?\n");
- scanf("%d",&n);
- printf("please input %d integer\n",n);
- pl=(int *)malloc(n*sizeof(int));
- initial(pl,n);
- printf("the numlist is\n");
- sortshow(pl,n);
- sortintlist(pl,n,"stol");
- printf("the new numlist stol is\n");
- sortshow(pl,n);
- sortintlist(pl,n,"ltos");
- printf("the new numlist ltos is\n");
- sortshow(pl,n);
- sortintlist(pl,n,"lx");
- printf("the new numlist lx is\n");
- sortshow(pl,n);
- free(pl);
- }
- void initial(int * pl,int n)
- {
- int i;
- for(i=0;i<n;i++)
- {
- scanf("%d",pl+i);
- }
- }
- void sortstol(int * pl,int n )
- {
- int i,j;
- for(i=0;i<n-1;i++)
- {
- for(j=0;j<n-i-1;j++)
- {
- if(*(pl+j)>*(pl+j+1))
- {
- change((pl+j),(pl+j+1));
- }
- }
- }
- }
- void change(int * pl,int * ph)
- {
- int temp;
- temp=*pl;
- *pl=*ph;
- *ph=temp;
- }
- void sortshow(int * pl,int n )
- {
- int i;
- for(i=0;i<n;i++)
- {
- printf("%d ",*(pl+i));
- }
- printf("\n");
- }
- void sortltos(int * pl,int n )
- {
- int i,j;
- for(i=0;i<n-1;i++)
- {
- for(j=0;j<n-i-1;j++)
- {
- if(*(pl+j)<*(pl+j+1))
- {
- change((pl+j),(pl+j+1));
- }
- }
- }
- }
- void sortlx(int * pl,int n )
- {
- int i,j,k=1;
- for(i=n-1;i>0;i--)
- {
- for(j=n-1;j>n-i-1;j--)
- {
- if(*(pl+j-1)>*(pl+j) && k%2!=0)
- {
- change((pl+j),(pl+j-1));
- }
- if(*(pl+j-1)<*(pl+j) && k%2==0)
- {
- change((pl+j),(pl+j-1));
- }
- }
- k++;
- }
- }
- void sortintlist(int * pl,int n,char * type)
- {
- char a[]="stol";
- char b[]="ltos";
- char c[]="lx";
- if(mycmpstr(a,type))
- {
- sortstol(pl,n);
- }
- if(mycmpstr(b,type))
- {
- sortltos(pl,n);
- }
- if(mycmpstr(c,type))
- {
- sortlx(pl,n);
- }
- }
- int mycmpstr(char * pl,char *ph)
- {
- int i=0,bl=1;
- while(*(pl+i)!='\0')
- {
- if(*(pl+i)==*(ph+i))
- {
- i++;
- continue;
- }
- bl=0;
- break;
- }
- return bl;
- }
复制代码
|
|