这个题有点不理解 看似很简单 却总是错 C语言

来源:百度知道 编辑:UC知道 时间:2024/05/18 05:22:38
#include <stdio.h>
void swap(pa,pb)
{ /*交换两个数的位置*/
int temp;
temp = *pa;
*pa = *pb;
*pb = temp;
}
void main()
{
int a,b,c,temp;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
swap(&a,&b);
if(b>c)
swap(&b,&c);
if(______2______)
swap(&a,&b);
printf("%d,%d,%d",a,b,c);
输入三个整数 从小到大排列!
}

#include<stdio.h>
void swap(int *pa,int *pb)
{ /*交换两个数的位置*/
int temp;
temp = *pa;
*pa = *pb;
*pb = temp;
}
void main()
{
int a,b,c,temp;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
swap(&a,&b);
if(b>c)
swap(&b,&c);
if(a>b) //a>b
swap(&a,&b);
printf("%d,%d,%d",a,b,c);

}

填a>b
因为换的是地址。其实你可以想下是算a和c比大小。当然也不是绝对,不过任何可能他都要算所以写成3步,不过这样很麻烦。记得一点~他们换的是地址的值~~

定义函数swap的时候,参数没有指明类型:
void swap(int *pa, int *pb){/*...*/}

a>b