我已经编写了一个冒泡排序程序,但该程序可以运行,但是我需要有一个较小的子函数来调用它以切换元素。我的气泡排序如下:
for(int i = N-1; i>0; i--)
{
for(int j = 0; j < i; j++){
if(arr[j]<arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
我当前的子功能如下:
void swap2(int x,int x1)
{
int temp;
temp = x;
x = x1;
x1 = temp;
}
当我将其包含在代码中时,它不起作用,为了使swap2函数实际交换元素,我该怎么办?
答案 0 :(得分:0)
如果要在函数外部查看结果,请将void swap2(int x,int x1)
更改为void swap2(int &x,int &x1)
。这样,您将通过引用传递参数。
答案 1 :(得分:0)
您可以使用如下参考参数:
void swap2(int & x, int & x1)
...使交换函数 modify 传入的值。(您可能会听到这些称为“输入输出参数”的信息,这些参数可以读取和写入通过功能。
这等效于(尽管语法可能更简洁)将指针传递给要修改的值,如下所示:
void swap2(int * x, int * x1)
{
int temp = *x;
*x = *x1;
*x1 = temp;
}