值参是不能修改外部传入变量值的,改为指针
void exchange(int *x,int *y) { int temp = *x; *x = *y; *y = temp; }
代码看起来没有问题呀,会不会是编辑器的原因,你在函数里面输出了内容,可以说是已经完成了交换,然后你主函数里面的输出是没有交换的内容,可以用exchange(int &x,int &y)或者exchange(int* x,int* y),完成数据的真正交换