【C++】简短笔记-qsort函数对二维数组进行排序

int compar(const void* a, const void* b)
{
	 return *(const int*)b - *(const int*)a; 一开始考虑不周,这一步可能导致数值溢出
	if (*(const int*)b > *(const int*)a) return +1;
	if (*(const int*)b < *(const int*)a) return -1;
	return 0;
}

int main(void)
{
	int s[3][3] = { 1, 5, 8
		, 7, 8, 3
		, 4, 6, 5 };

	qsort(s, sizeof(s) / sizeof(s[0]), sizeof(s[0]), &compar);

	for (size_t r = 0; r != sizeof(s) / sizeof(s[0]); ++r)
	{
		for (size_t c = 0; c != sizeof(s[r]) / sizeof(s[r][0]); ++c)
			printf("\t%d", s[r][c]);
		printf("\n");
	}

	return 0;
}
发布了43 篇原创文章 · 获赞 4 · 访问量 1218

猜你喜欢

转载自blog.csdn.net/weixin_42176221/article/details/101113609