0

我需要编写一个程序来按升序排列 4 个数字,例如 9 2 8 3 到 2 3 8 9。所以我想到了使用交换的逻辑。我会使用 if/else 或 switch 语句,但首先我需要在下面解决这个问题。我想输入 2 个整数(稍后比较),然后交换它们并将其返回给主函数。我该怎么做呢。请提供最好的解决方案,虽然我没有被教过指针,结构等。

#include <stdio.h>

int swap(int x, int y)
{   
int c;
    c = x;
    x = y;
    y = c;
    return x, y;
}

int main()
{
int a = 5, b = 7;

    printf("a=%d b=%d\n", a, b);
    swap(a, b);
    printf("a=%d b=%d\n", x, y);
    return 0;
}

我希望最终输出为 7、5。谢谢!

4

2 回答 2

5
return x, y;

你不能从一个函数返回多个值,你可以传递一个指针然后修改他的内容:

#include <stdio.h>

void swap(int *x, int *y)
{   
    int c;

    c = *x;
    *x = *y;
    *y = c;
}

int main()
{
    int a = 5, b = 7;

    printf("a=%d b=%d\n", a, b);
    swap(&a, &b);
    printf("a=%d b=%d\n", a, b);
    return 0;
}
于 2013-10-11T19:19:45.353 回答
1

传递变量 a 和 b 的地址

void swap(int *x, int *y)
{   
int c;
    c = *x;
    *x = *y;
    *y = c;

}

从主呼叫swap(&a,&b);

在 main 中打印 a 和 b 值。

于 2013-10-11T19:20:26.957 回答