C语言:用指针把三个数由小到大排序 这么写哪错了啊

来源:百度知道 编辑:UC知道 时间:2024/09/21 15:38:10
#include<stdio.h>
main()
{void swap(int *p1,int *p2);
int n1,n2,n3;
int *p1,*p2,*p3;
printf("input three integer n1,n2,n3:");
scanf("%d,%d,%d",&n1,&n2,&n3);
p1=&n1;
p2=&n2;
p3=&n3;
if(n1>n2)swap(p1,p2);
if(n1>n3)swap(p1,p3);
if(n2>n3)swap(p2,p3);
printf("Now,the order is:%d,%d,%d\n",n1,n2,n3);

}
void swap(int *p1,int *p2)
{int p;
p=*p1;*p1=*p2;*p2=p;

}

程序完全正确啊 我运行了 我估计是你自己输入错了
scanf("%d,%d,%d",&n1,&n2,&n3);这句 你输入时要自己加逗号的
例如55,89,95 这样带逗号的输入

恩 是啊

if(n1>n2)swap(p1,p2);
if(n1>n3)swap(p1,p3);
if(n2>n3)swap(p2,p3);
无法将三个数正确排序

程序完全对呀!