帮我看看一个置换函数,不知道为什么无效。

来源:百度知道 编辑:UC知道 时间:2024/05/10 07:18:01
如题,我是新手,有点不明白。函数如下:
int swap(int x,int y)
{
int temp;
temp=x;
x=y;
y=tenp;
}
main()
{
int swap(int x,int y);
int a,b;
scanf("%d%d",&a,&b);
if(a<b) swap(a,b);
printf("%d %d\n",a,b);
}
我按了F7,结果程序可以进行,也就是说我没写错,但他就是不置换。我想要的是我写的那种,置换的写再main里的我会的,就是向知道怎么调用函数进去主函数。
ps:我刚来,没什么钱,就给个5积分,希望大家不要见怪,因为我问题一大堆,积分用完了,我就不知道怎么问了。
......顺便说下,教科书里有指针的,但我想要了解的为什么指针的行,普通函数不行,如果可以,怎么做!

呵呵,你在swap里只是把x,y的值换了,又没换a和b的值,当然不对.这个要用到指针的,这样改:

#include <stdio.h>
int swap(int *x,int *y)
{
int temp;
temp=*x;
*x=*y;
*y=tenp;
}
main()
{
int *a,*b,aa,bb;
a=&aa,b=&bb;
scanf("%d%d",a,b);
if(*a<*b)
swap(a,b);
printf("%d\t%d\n",*a,*b);
}