用malloc开辟动态存储单元,输入三个整数,按从小到大输出
#include <stdio.h>#include <stdlib.h>
main()
{int t,*p1,*p2,*p3;
p1=(int *)malloc(sizeof(int));
p2=(int *)malloc(sizeof(int));
p3=(int *)malloc(sizeof(int));
scanf("%d%d%d",&p1,&p2,&p3);
printf("(1)*p1=%d,*p2=%d,*p3=%d\n",*p1,*p2,*p3);
if (*p1>*p2){t=*p1;*p1=*p2;*p2=t;}
if (*p1>*p3){t=*p1;*p1=*p3;*p3=t;}
printf("(2)*p1=%d,*p2=%d,*p3=%d\n",*p1,*p2,*p3);
system("PAUSE");
return 0;
}
这程序有点傻,compile 可以过去,但是运行不出结果,scanf以后就出错了。我这样的scanf的表达不对吗?请高手指正。