C练习: 如何利用函数指针实现排序

122 阅读1分钟

题目:输入三个数a,b,c;要求不管怎么水乳,在输出的时候,a,b,c就是由大到小的顺序输出,用函数封装实现

void swap(int* a, int* b, int* c)
{
	int tmp;
	if (*a > * b) 
    {
		tmp = *b;
		*b = *a;
		*a = tmp;
	}
	if (*a > * c) 
    {
		tmp = *c;
		*c = *a;
		*a = tmp;
	}
	if (*b > * c) 
    {
		tmp = *c;
		*c = *b;
		*b = tmp;
	}
	return;
}
int main()
{
	int data1, data2, data3;
	printf("请输入三个整数,使用空格分隔,按回车输入结束\n");
	scanf("%d %d %d", &data1, &data2, &data3);
	swap(&data1, &data2, &data3); //调用函数将三个数从小到大排序。
	printf("三个数由小到大为%d,%d,%d \n", data1, data2, data3);
	return 0;
}