作业帮 > 综合 > 作业

输入3个数a,b,c,按大小顺序输出.利用指针方法.

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/24 18:35:51
输入3个数a,b,c,按大小顺序输出.利用指针方法.
#include "stdio.h"
int swap(int x,int y);
main()
{
\x05int a,b,c;
\x05int *p1,*p2,*p3;
\x05printf("请输入3个数,本程序将从小到大排列");
\x05scanf("%d%d%d",&a,&b,&c);
\x05p1=&a;
\x05p2=&b;
\x05p3=&c;
\x05if(a>b)
\x05\x05swap(p1,p2);
\x05if(a>c)
\x05\x05swap(p1,p3);
\x05if(b>c)
\x05\x05swap(p2,p3);
\x05printf("%d%d%d",a,b,c);
\x05return 0;
}
int swap(int x,int y)
{
\x05int *x,*y;
\x05int p;
\x05p=*x;
\x05*x=*y;
\x05*y=p;
}
请问哈我这个哪里错了啊~
输入3个数a,b,c,按大小顺序输出.利用指针方法.
首先,swap()函数里得形参应为指向整型指针而且没有返回值,即定义为void swap(int *,int *)
其次,swap()函数中,两指针交换地址是借助int p;p=*x; *x=*y; *y=p;
三是,scanf()里三个参数输入时,最好有空格,以方便输入;
完整代码如下;
#include "stdio.h"
void swap(int *,int *);
main()
{
\x09int a,b,c;
\x09int *p1,*p2,*p3;
\x09printf("请输入3个数,本程序将从小到大排列:");
\x09scanf("%d %d %d",&a,&b,&c);
\x09p1=&a;
\x09p2=&b;
\x09p3=&c;
\x09if(a>b)
\x09\x09swap(p1,p2);
\x09if(a>c)
\x09\x09swap(p1,p3);
\x09if(b>c)
\x09\x09swap(p2,p3);
\x09printf("%d %d %d\n",a,b,c);
\x09return 0;
}
void swap(int *x,int *y)
{
\x09int p;
\x09p=*x;
\x09*x=*y;
\x09*y=p;
}