C++的下一个函数有什么问题

What is wrong in the next function of C++

我的目标是接受 3 个数字,然后将它们从小到大排序,我似乎一切都井井有条,一切顺利,但我的打印语句只打印了两次相同的东西,是因为我在写无效错了吗?这是它的样子,如果您需要更多代码,请告诉我:

int output1 = First;
int output2 = Second;
int output3 = Third;
void sort3(int output1,int output2,int output3); // Send to the sorting void.

虚空:

void sort3(int &output1, int &output2, int &output3){
    void sort2(int output1, int output2);
    if (output1 > output3) {
        Swap(output1, output3);
    }
    if (output2 > output3) {
        Swap(output2, output3);
    }
    cout << output1 << "" << output2 << "" << output3 << "voided statement" << endl;
    return;
}

void sort2(int output1, int output2){
    if (output1 > output2)
        Swap(output1, output2);
    return;
}

void Swap(int &x, int &y) {
    int temp = x;
    x = y;
    y = temp;
    return;
}

我的印象是发送一些东西,你只需输入 voids 名称和你要发送的内容在括号中,但每当我这样做时,我都会出错。

好的,我明白了。您没有在此处调用函数:

void sort3(int output1,int output2,int output3); // Send to the sorting void.

声明函数sort3。它实际上并没有使用该功能。要使用它,您需要像这样调用它:

sort3(output1, output2, output3);

同样,在 sort3 中你需要调用 sort2 而不仅仅是声明它:

sort2(output1, output2);

您还需要更改sort2以获取引用参数,否则它只会对它的局部变量进行排序,而不是对您传递给它的局部变量进行排序。 sort3 你做对了,但 sort2.

不对

1) 您必须更改 sort2 方法以通过引用获取值才能正常工作,即您必须更改

void sort2(int output1, int output2) 

void sort2(int &output1, int &output2)

2) 当您尝试调用函数时,您必须删除 return 类型(即 void)和变量类型限定符(即 int) - 否则您是声明它,而不是调用它。