迷砖00 发表于 2020-12-23 21:17:48

c语言

求大佬看一下,是哪里有错吗?为什么会这样?(C语言)
输入x=1,y=2;输出还是x=1,y=2
#include<stdio.h>
int swap(int x,int y)

{
int n;
n=x;
x=y;
y=n;
}
int main()
{
        int x,y,n;
        scanf("%d%d",&x,&y);
        swap(x,y);
        printf("%d %d",x,y);
        return 0;
}

jackz007 发表于 2020-12-23 21:33:40

本帖最后由 jackz007 于 2020-12-23 21:35 编辑

#include<stdio.h>

// swap() 函数传入的两个参数必须是指针才能实现两个变量值的交换
void swap(int * x , int * y)
{
      int n   ;
      n = * x   ;
      * x = * y ;
      * y = n   ;
}

int main(void)
{
      int x , y , n             ;
      scanf("%d%d" , & x , & y) ;
      swap(& x , & y)         ;
      printf("%d %d", x , y)    ;
}

迷砖00 发表于 2020-12-23 21:42:20

谢谢,所以我这个不对是吗?

jackz007 发表于 2020-12-23 23:32:51

迷砖00 发表于 2020-12-23 21:42
谢谢,所以我这个不对是吗?

       显然不对,你的代码无法实现变量值的交换。
页: [1]
查看完整版本: c语言