c利用函数指针实现排序

79 阅读1分钟
#include <stdio.h>
void swap(int *m,int *n,int *p){
	int max;
	int mid;
	int min;
	if(*m>*n){
		max=*m;
		if (*m>*p){
			max=*m;
			if(*n>*p){
				mid=*n;
				min=*p;
			}else{
				mid=*p;
				min=*n;
			}
		}else{
			max=*p;
			mid=*m;
			min=*n;
		}
	}else{
		max=*n;
		if (*n>*p){
			max=*n;
			if(*m>*p){
				mid=*m;
				min=*p;
			}else{
				mid=*p;
				min=*m;
			}
		}else{
			max=*p;
			mid=*n;
			min=*m;
		}
	}
	*m=max;
	*n=mid;
	*p=min;
}
int main(){
	int data1;
	int data2;
	int data3;
	puts("请依次输入三个数字:");
	scanf("%d %d %d",&data1,&data2,&data3);
	printf("三个数字为:%d %d %d\n",data1,data2,data3);
	swap(&data1,&data2,&data3);
	printf("对三个数字进行从大到小排序后:%d %d %d\n",data1,data2,data3);
}