C语言输入三个数按由小到大排序函数调用的方法
答案:2 悬赏:10
解决时间 2021-12-04 20:07
- 提问者网友:空白
- 2021-12-04 04:35
C语言输入三个数按由小到大排序函数调用的方法
最佳答案
- 二级知识专家网友:初心未变
- 2021-12-04 04:55
#include
mian()
{
int f(int *pointer1,int *pointer2,int *pointer3); \\对要进行调用的函数进行声明
int change(int *po1,int *po2);
int a,b,c,*p1,*p2,*p3; \\定义三个变量和三个指针变量。
scanf("%d %d %d",a,b,c);
p1=a; p2=b; p3=c;
f(*p1,*p2,*p3); \\调用函数f()
printf("排序后的三个数为:%d%d%d\n",a,b,c);
}
int f(int *pointer1,int *pointer2,int *pointer3)
{
if(*pointer1>*pointer2) change(*pointer1,*pointer2);
if(*pointer1>*pointer3) change(*pointer1,*pointer3);
if(*pointer2>*pointer3) change(*pointer2,*pointer3);
}
int change(int *po1,int *po2)
{
int t;
t=*po1;
*po1=*po2;
*po2=t;
}
mian()
{
int f(int *pointer1,int *pointer2,int *pointer3); \\对要进行调用的函数进行声明
int change(int *po1,int *po2);
int a,b,c,*p1,*p2,*p3; \\定义三个变量和三个指针变量。
scanf("%d %d %d",a,b,c);
p1=a; p2=b; p3=c;
f(*p1,*p2,*p3); \\调用函数f()
printf("排序后的三个数为:%d%d%d\n",a,b,c);
}
int f(int *pointer1,int *pointer2,int *pointer3)
{
if(*pointer1>*pointer2) change(*pointer1,*pointer2);
if(*pointer1>*pointer3) change(*pointer1,*pointer3);
if(*pointer2>*pointer3) change(*pointer2,*pointer3);
}
int change(int *po1,int *po2)
{
int t;
t=*po1;
*po1=*po2;
*po2=t;
}
全部回答
- 1楼网友:许你一世温柔
- 2021-12-04 06:23
因为值的交换在函数里面,交换是无效的,需要用地址的交换
#include <stdio.h>
int swap(int *a, int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
printf("a=%d,b=%d\n",*a,*b);
}
int main()
{
int a,b,c;
printf("please input three integers:\n");
scanf("%d,%d,%d", &a,&b,&c);
if(a>b)swap(&a,&b);
if(a>c) swap(&a,&c);
if(b>c) swap(&b,&c);
printf("%d %d %d \n",a,b,c);
return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯