Я недавно начал возиться с аннулируются и столкнулся с проблемойработы с пустотой в первый раз
это мой код:
#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 в основном, но в нем говорится, что слишком много аргументов. Я также попытался удалить параметры из пустоты, но это тоже не сработало. Любые советы или что-нибудь, я могу прочитать было бы здорово, спасибо
Если у вас есть аргументы в функции, вам действительно нужно передать аргументы при вызове функции. Также обратите внимание, что поскольку вы программируете C++, функции 'void smallSort()' и 'void smallSort (int & num1, int & num2, int & num3)' являются * not * той же самой функцией. Подробнее о перегрузке функций. Фактически, первый равен «void smallSort (void)» (т. Е. Функция, принимающая * no * аргументы). –
Обратите внимание, что поскольку вы объявляете функцию 'smallSort' без принятия аргументов и вызываете' smallSort' без аргументов, вы не получаете ошибку компилятора, вместо этого вы получаете ошибку * linker *, говорящую о том, что 'smallSort' не определен , И это, потому что вы не определяете функцию 'smallSort', не принимающую никаких аргументов. И это то место, где вы должны искать и читать о различии между * декларацией * и * определением *. –
Получите 'cout' из функции (функция должна быть функцией). Переместите его по вызову 'smallSort()'. Это принцип программирования. Он не будет исправлять вашу текущую проблему, но это облегчит вашу жизнь. Например, с 'cout', где он находится, вы можете реорганизовать, удалив' & 's (удаление' & 'не будет иметь никакого поведенческого влияния. –