我最近開始瞎搞與無效,碰到一個問題與無效工作首次
這是我的代碼:
#include <iostream>
using namespace std;
void smallSort();
int main()
{
int num1, num2, num3;
cout << "Please enter the first number" << endl;
cin >> num1;
cout << "Please enter the second number" << endl;
cin >> num2;
cout << "Please enter the third number" << endl;
cin >> num3;
cout << "Now I will sort from smallest to biggest!" << endl;
smallSort();
return 0;
}
void smallSort(int& num1, int& num2, int& num3){
if(num1 > num2)
swap(num1, num2);
if(num1 > num3)
swap(num1, num3);
if(num2 > num3)
swap(num2, num3);
cout << num1 << " " << num2 << " " << num3 << endl;
}
我試着參數添加到smallSort在主要內部,但它說,有太多的論據。我也嘗試從void中移除參數,但是這也不起作用。任何提示或任何東西我可以閱讀將是巨大的,感謝
如果你有一個論據函數,您實際上需要在調用函數時傳遞參數。另請注意,由於您在編程C++,所以void smallSort()和void smallSort(int&num1,int&num2,int&num3)這兩個函數不是相同的函數。閱讀更多關於函數重載的信息。實際上,第一個等於'void smallSort(void)'(即一個採用* no *參數的函數)。 – 2015-01-31 22:36:03
此外請注意,由於您聲明瞭一個不帶參數的'smallSort'函數,並且調用不帶參數的'smallSort',所以您不會收到編譯器錯誤,而是會得到一個* linker *錯誤,指出'smallSort'未定義。而它呢,因爲你沒有定義一個不帶參數的'smallSort'函數。這是您應該查找並瞭解*聲明*和*定義*之間區別的關鍵。 – 2015-01-31 22:39:27
從函數中獲取'cout'(一個函數應該是一個函數)。在調用'smallSort()'之後移動它。這是一個編程原則。它不會解決你目前的問題,但它會讓你的生活更輕鬆。例如,在'cout'的地方,你可以通過刪除'&'s來重構(刪除'&'將不會有任何行爲上的影響 – 2015-01-31 22:45:49