Как я могу исправить свой код? Я не понимаю, что значение sort3 was not declared in this scope
.
#include <iostream>
using namespace std;
int main ( )
{
cout<<" Enter first value. "<<endl;
int a;
cin>> a;
cout<<"Enter second value. "<<endl;
int b;
cin>>b;
cout<<"Enter third value. "<<endl;
int c;
cin>>c;
sort3(a,b,c);
cout << a << " " << b << " " << c << endl;
return 0;
}
void sort3(int& a, int& b, int&c )
{
int temp;
if (a < b )
{
temp = a;
a = b;
b = temp;
}
else if (a < c )
{
temp = a;
a = c;
c = temp;
}
else if ( b < c )
{
temp = b;
b = c;
c = temp;
}
}
Вы можете "объявить" функцию sort3
перед main:
void sort3(int& a, int& b, int&c );
int main ()
{
...
Другой вариант - переместить определение sort3
перед main.
В C++ вам нужно, по крайней мере, объявление функции, прежде чем вы сможете ее использовать.
Вам нужно сначала поставить декларацию для использования функции:
#include <iostream>
using namespace std;
void sort3(int& a, int& b, int&c ); //declaration
int main ( )
{
декларировать
void sort3(int&, int&, int& );
Перед main
функцией он будет работать.
Вы получаете эту ошибку, потому что компилятор анализирует ваш файл сверху вниз. Поэтому компилятор встречает ваш вызов sort3
но он никогда не был объявлен.
Чтобы решить эту проблему, вы можете использовать форвардную декларацию или переместить весь sort3
-function перед вашим main()
.
Решение с форвардной декларацией:
#include <iostream>
using namespace std;
void sort3(int& a, int& b, int&c );
int main ( )
{
... code ...
}
void sort3(int& a, int& b, int&c )
{
... code ...
}
Без прямого объявления, но sort3
перемещается перед main()
:
#include <iostream>
using namespace std;
void sort3(int& a, int& b, int&c )
{
... code ...
}
int main ( )
{
... code ...
}
Либо поставить декларацию перед функцией:
void sort3(int& a, int& b, int&c )
int main()
или попробуйте это:
#include <iostream>
using namespace std;
void sort3(int& a, int& b, int&c )
{
int temp;
if (a < b )
{
temp = a;
a = b;
b = temp;
}
else if (a < c )
{
temp = a;
a = c;
c = temp;
}
else if ( b < c )
{
temp = b;
b = c;
c = temp;
}
}
int main ( )
{
cout<<" Enter first value. "<<endl;
int a;
cin>> a;
cout<<"Enter second value. "<<endl;
int b;
cin>>b;
cout<<"Enter third value. "<<endl;
int c;
cin>>c;
sort3(a,b,c);
cout << a << " " << b << " " << c << endl;
return 0;
}
Обратите внимание, что объявление функции должно быть до использования.
Попробуй это
#include <iostream>
using namespace std;
void sort3(int& a, int& b, int&c )
{
int temp;
if (a < b )
{
temp = a;
a = b;
b = temp;
}
else if (a < c )
{
temp = a;
a = c;
c = temp;
}
else if ( b < c )
{
temp = b;
b = c;
c = temp;
}
}
int main ( )
{
cout<<" Enter first value. "<<endl;
int a;
cin>> a;
cout<<"Enter second value. "<<endl;
int b;
cin>>b;
cout<<"Enter third value. "<<endl;
int c;
cin>>c;
sort3(a,b,c);
cout << a << " " << b << " " << c << endl;
return 0;
}
или вы можете определить функцию в верхней части, после строки 'using namespace std;'
void sort3(int &, int &, int &);