C ++的下一个功能有什么问题

时间:2016-02-19 14:01:14

标签: c++ void

我的目标是接受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;
}

我的印象是发送一些你只需输入空白名称和你在括号中发送的内容,但每当我这样做时,我都会收到错误。

2 个答案:

答案 0 :(得分:3)

好的,我看到了问题。你没有在这里调用一个函数:

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

声明函数sort3。它实际上并没有使用这个功能。要使用它,你需要调用它,如下所示:

sort3(output1, output2, output3);

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

sort2(output1, output2);

您还需要更改sort2以获取参考参数,否则它只会对其局部变量进行排序,而不是您传递给它的变量。你有sort3sort2没有。

答案 1 :(得分:0)

1)您必须更改sort2方法以通过引用获取值才能生效,即您必须更改

void sort2(int output1, int output2) 

void sort2(int &output1, int &output2)

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