c语言函数的使用,定义一个交换函数 实现2个数字的交换。

定义一个交换函数 实现2个数字的交换。

#include<stdio.h>

int sub(int x,int y)

{

int
temp;

temp=x;

x=y;

y=temp;

}

void main()

{

int
a,b;

scanf("%d,%d",&a,&b);

sub(a,b);

printf("%d,%d",sub(a,b));

}
最后的输出位置不应该是a,b吗,还有定义函数为什么不用返回x,y,这个答案是同学高数我的,验证结果可以实现,为什么?

void Swap(int&x,int&y)

{

int temp=0;

temp=x;

x=y;

y=temp;

}

int main()

{

int a=1;

int b=2;

Swap(a,b);

cout&lt;&lt;"a="&lt;&lt;a&lt;&lt;endl;

cout&lt;&lt;"b="&lt;&lt;b&lt;&lt;endl;

system("pause");

return 0;

}

运行结果:

扩展资料:

用指针交换:

void Swap(int*x,int*y)

{

int temp=0;

temp=*x;

*x=*y;

*y=temp;

}

int main()

{

int x=1;

int y=2;

Swap(&x,&y);

printf("x=%d,y=%d\n",x,y);

system("pause");

return 0;

}

运行结果:

X=2;Y=1

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
代码应该如下,函数需要用指针来传递参数。

#include<stdio.h>

int sub(int *x,int *y)

{

int
temp;

temp=*x;

*x=*y;

*y=temp;

}

void main()

{

int
a,b;

scanf("%d,%d",&a,&b);

sub(&a,&b);

printf("%d,%d\n",a, b);

}本回答被提问者采纳
第2个回答  2013-12-01
a,b经过函数的调用后已经将值传递给了x,y,所以输出x,y也就是输出a,b。
子函数的值就是x,y,所以输出子函数的值就是输出x,y,因此不用返回x,y。
相似回答