我需要制作一个程序,按升序排列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。谢谢!
答案 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值。