十九课作业
本帖最后由 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;
} 支持楼主,佩服!
页:
[1]