使用qsort函数排序各种类型的数据。

1、使用qsort函数排序各种类型的数据。

int cmp(const void *x, const void *y) //整型
{
	return (*(int*)x) - (*(int *)y);
}

int cmp1(const void *x, const void *y) //字符型
{
	return (*(char *)x) - (*(char *)y);
}

int cmp2(const void *x, const void* y) //字符串型
{
	return strcmp(*(char **)x, *(char **)y);
}

int cmp3(const void *x, const void *y) //浮点型
{
	return (*(double*)x) - (*(double*)y);
}

int main()
{
	int i = 0;
	int arr1[] = { 1, 23, 45, 32, 42, 54, 2, 47, 86 };
	qsort(arr1, sizeof(arr1) / sizeof(arr1[0]), sizeof(arr1[0]), cmp);
	for (i = 0; i < sizeof(arr1) / sizeof(arr1[0]); i++)
	{
		printf("%d ", arr1[i]);
	}
	printf("\n");

	char arr2[] = { 'a','f','g','h','R','Y','W' };
	qsort(arr2, sizeof(arr2) / sizeof(arr2[0]), sizeof(arr2[0]), cmp1);
	for (i = 0; i < sizeof(arr2) / sizeof(arr2[0]); i++)
	{
		printf("%d ", arr2[i]);
	}
	printf("\n");

	char *arr3[] = {"asd","tfs","TF","hgf","uh","DFE"};
	qsort(arr3, sizeof(arr3) / sizeof(*arr3), sizeof(*arr3), cmp2);
	for (i = 0; i < sizeof(arr3) / sizeof(*arr3); i++)
	{	
		printf("%s ", arr3[i]);
	}
	printf("\n");

	double arr4[] = { 4.3, 23.2, 45.7, 32.66, 42.34, 54.78, 2.70, 47.6, 86.6 };
	qsort(arr4, sizeof(arr4) / sizeof(arr4[0]), sizeof(arr4[0]), cmp3);
	for (i = 0; i < sizeof(arr4) / sizeof(arr4[0]); i++)
	{
		printf("%f ", arr4[i]);
	}
	printf("\n");
	getchar();
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值