C - 输入2个值,将2个值返回MAIN。交换

时间:2013-10-11 19:17:01

标签: c function return swap

我需要制作一个程序,按升序排列4个数字,如9 2 8 3到2 3 8 9。 所以我通过使用swap来考虑逻辑。我将使用if / else或switch语句,但首先我需要解决此问题。 我想输入2个整数(稍后进行比较),然后交换它们并将其返回到main函数。我该怎么做呢。请提供最好的解决方案,虽然我没有学过指针,结构等。

#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。谢谢!

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:1)

传递变量a和b的地址

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

}

来自主swap(&a,&b);

的电话

在main中打印a和b值。