#include <conio.h>
#include <string.h>
int compare_int(int *array,int n)
{
int i,j,temp;
for(i=0;i <n-1;i++)
for(j=i+1;j <n;j++)
{
if(array[i] > array[j])
{temp=array[i];array[i]=array[j];array[j]=temp;}
}
}
int compare_char(char *array,int n)
{
int i,j;
char temp;
for(i=0;i <n-1;i++)
for(j=i+1;j <n;j++)
{
if(array[i] > array[j])
{temp=array[i];array[i]=array[j];array[j]=temp;}
}
}
int compare_double(double *array,int n)
{
int i,j;
double temp;
for(i=0;i <n-1;i++)
for(j=i+1;j <n;j++)
{
if(array[i] > array[j])
{temp=array[i];array[i]=array[j];array[j]=temp;}
}
}
int (*compare_oper[9])(void *array,int n)={NULL,compare_char,NULL,NULL,compare_int,NULL,NULL,NULL,compare_double};
void sort(void *str,int const n,int const len,int (*compare_oper[])(void *array,int n))
{
compare_oper[len](str,n);
}
void main()
{
int i;
int a[]={1,9,2,5,3}; #include <stdio.h>
#include <conio.h>
#include <string.h>
int compare_int(int *array,int n)
{
int i,j,temp;
for(i=0;i <n-1;i++)
for(j=i+1;j <n;j++)
{
if(array[i] > array[j])
{temp=array[i];array[i]=array[j];array[j]=temp;}
}
}
int compare_char(char *array,int n)
{
int i,j;
char temp;
for(i=0;i <n-1;i++)
for(j=i+1;j <n;j++)
{
if(array[i] > array[j])
{temp=array[i];array[i]=array[j];array[j]=temp;}
}
}
int compare_double(double *array,int n)
{
int i,j;
double temp;
for(i=0;i <n-1;i++)
for(j=i+1;j <n;j++)
{
if(array[i] > array[j])
{temp=array[i];array[i]=array[j];array[j]=temp;}
}
}
int (*compare_oper[9])(void *array,int n)={NULL,compare_char,NULL,NULL,compare_int,NULL,NULL,NULL,compare_double};
void sort(void *str,int const n,int const len,int (*compare_oper[])(void *array,int n))
{
compare_oper[len](str,n);
}
void main()
{
int i;
int a[]={1,9,2,5,3};
char *b="china";
double c[]={2.5,1.1,4.99,1.5,1};
sort(a,sizeof(a)/sizeof(int),sizeof(int),compare_oper);
sort(b,strlen(b),sizeof(char),compare_oper);
sort(c,sizeof(c)/sizeof(double),sizeof(double),compare_oper);
for(i=0;i <5;i++)
{printf("%d\n",a[i]);printf("%c\n",b[i]);printf("%ld\n",c[i]);}
getch();
}
char b[]="china";
double c[]={2.5,1.1,4.99,1.5,1};
sort(a,sizeof(a)/sizeof(int),sizeof(int),compare_oper);
sort(b,strlen(b),sizeof(char),compare_oper);
sort(c,sizeof(c)/sizeof(double),sizeof(double),compare_oper);
for(i=0;i <5;i++)
{printf("%d\n",a[i]);printf("%c\n",b[i]);printf("%ld\n",c[i]);}
getch();
}
0 评论:
发表评论