我的目标是接受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;
}
我的印象是发送一些你只需输入空白名称和你在括号中发送的内容,但每当我这样做时,我都会收到错误。
答案 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
以获取参考参数,否则它只会对其局部变量进行排序,而不是您传递给它的变量。你有sort3
但sort2
没有。
答案 1 :(得分:0)
1)您必须更改sort2
方法以通过引用获取值才能生效,即您必须更改
void sort2(int output1, int output2)
到
void sort2(int &output1, int &output2)
2)当你试图调用函数时,你必须删除返回类型(即void
)和变量类型限定符(即int
) - 否则你要声明它,而不是叫它。