有三个数a,b,c,若要将它们按照从大到小的顺序输出,我们只需将a,b,c分别调整为最大,次大,最小直接输出就可以了。
int main()
{
int a = 0;
int b = 0;
int c = 0;
int tmp = 0;
printf("请输入三个数:");
scanf("%d,%d,%d", &a, &b, &c);
if (a < b)//a如果小于b,交换ab的值
{
tmp = a;
a = b;
b = tmp;
}
if (a < c)//a如果小于c,交换ac的值
{
tmp = a;
a = c;
c = tmp;
}
if (b < c)//b如果小于c,交换bc的值
{
tmp = b;
b = c;
c = tmp;
}
printf("%d,%d,%d\n", a, b, c);
return 0;
}
输出结果:
我们还可以利用自定义函数Swap()来升级以上代码。
在Swap()函数中定义了指针变量,指针变量是用来存放地址的,因为当实参传给形参的时候,形参只是实参的一份临时拷贝,不会改变实参的值
void Swap(int* x, int* y)
{
int tmp = 0;
tmp = *x;
*x = *y;
*y = tmp;
}
int main()
{ //实参
int a = 0;
int b = 0;
int c = 0;
printf("请输入三个数:");
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;
}
输出结果: