C++ 函数如何使用引用返回所需的数字?
我做了一个函数,用户需要输入数组大小和数组值,它将返回该数组中的最大和最小数字 我的问题是如何通过引用返回这两个值 这是我的密码:C++ 函数如何使用引用返回所需的数字?,c++,arrays,reference,C++,Arrays,Reference,我做了一个函数,用户需要输入数组大小和数组值,它将返回该数组中的最大和最小数字 我的问题是如何通过引用返回这两个值 这是我的密码: void function() { int i, n; int arr[10]; cout << "Enter the size of array: "; cin >> n; cout << endl; for (i = 0; i < n; ++i) {
void function()
{
int i, n;
int arr[10];
cout << "Enter the size of array: ";
cin >> n;
cout << endl;
for (i = 0; i < n; ++i)
{
cout << "Number " << i + 1 << " : ";
cin >> arr[i];
}
for (i = 1; i < n; ++i)
{
if (arr[0] < arr[i])
arr[0] = arr[i];
}
cout << "Biggest number is: " << arr[0];
cout << endl;
for (i = 1; i < n; ++i)
{
if (arr[0] > arr[i])
arr[0] = arr[i];
}
cout << "Smallest number is: " << arr[0];
}
int main()
{
function();
return 0;
}
void函数()
{
inti,n;
int-arr[10];
cout>n;
cout如果希望函数返回一对数字,可以使用std::pair
来实现此目的
std::pair<int, int> findMaxAndMin(int* array, int arraySize) {
int biggest = std::numeric_limits<int>::min();
int smallest = std::numeric_limits<int>::max();
for (int i = 0; i < arraySize; i++) {
if (array[i] > biggest) {
biggest = array[i];
}
if (array[i] < smallest) {
smallest = array[i];
}
}
return std::make_pair(biggest, smallest);
}
int main() {
int testArray[10] = {10, 9, 8, 7, -69, 100, -200, 300, 1, 2};
auto result = findMaxAndMin(testArray, 10);
std::cout << "biggest: " << result.first
<< ", smallest: " << result.second << std::endl;
}
std::pair findMaxAndMin(int*array,int arraySize){
int max=std::numeric_limits::min();
int minimest=std::numeric_limits::max();
for(int i=0;i最大值){
最大=数组[i];
}
if(数组[i]<最小值){
最小=数组[i];
}
}
返回标准::生成_对(最大、最小);
}
int main(){
int testArray[10]={10,9,8,7,-69,100,-200,300,1,2};
自动结果=findMaxAndMin(testArray,10);
std::cout如果希望函数返回一对数字,可以使用std::pair
实现此目的
std::pair<int, int> findMaxAndMin(int* array, int arraySize) {
int biggest = std::numeric_limits<int>::min();
int smallest = std::numeric_limits<int>::max();
for (int i = 0; i < arraySize; i++) {
if (array[i] > biggest) {
biggest = array[i];
}
if (array[i] < smallest) {
smallest = array[i];
}
}
return std::make_pair(biggest, smallest);
}
int main() {
int testArray[10] = {10, 9, 8, 7, -69, 100, -200, 300, 1, 2};
auto result = findMaxAndMin(testArray, 10);
std::cout << "biggest: " << result.first
<< ", smallest: " << result.second << std::endl;
}
std::pair findMaxAndMin(int*array,int arraySize){
int max=std::numeric_limits::min();
int minimest=std::numeric_limits::max();
for(int i=0;i最大值){
最大=数组[i];
}
if(数组[i]<最小值){
最小=数组[i];
}
}
返回标准::生成_对(最大、最小);
}
int main(){
int testArray[10]={10,9,8,7,-69,100,-200,300,1,2};
自动结果=findMaxAndMin(testArray,10);
St::Cuth C++中,使用向量、迭代器和算法更为常见。
解决问题的简单方法是:
std::vector<int> a1{ {1, 2, 3} };
const auto result = std::minmax_element(a1.begin(), a1.end());
auto forwardIteratorToMinimum = result.first;
auto forwardIteratorToMaximum = result.second;
std::向量a1{{{1,2,3};
const auto result=std::minmax_元素(a1.begin(),a1.end());
auto ForwardIterator Tominimum=结果。第一;
auto ForwardIterator最大值=result.second;
在C++中,使用向量、迭代器和算法更为常见。
解决问题的简单方法是:
std::vector<int> a1{ {1, 2, 3} };
const auto result = std::minmax_element(a1.begin(), a1.end());
auto forwardIteratorToMinimum = result.first;
auto forwardIteratorToMaximum = result.second;
std::向量a1{{{1,2,3};
const auto result=std::minmax_元素(a1.begin(),a1.end());
auto ForwardIterator Tominimum=结果。第一;
auto ForwardIterator最大值=result.second;
要通过引用返回结果,您必须
1) 更改函数的定义以返回引用(与
&
)
发件人:
致:
2) 在函数内部,您必须为引用返回的变量赋值(min\u value
和max\u value
)
3) 调用函数时,必须提供变量,这些变量将“容纳”结果:
发件人:
致:
要通过引用返回结果,您必须
1) 更改函数的定义以返回引用(与
&)
发件人:
致:
2) 在函数内部,您必须为引用返回的变量赋值(min\u value
和max\u value
)
3) 调用函数时,必须提供变量,这些变量将“容纳”结果:
发件人:
致:
查看您的返回值……就像在main中一样,例如,您可以将函数声明为int函数(),并在结尾处写入返回arr[0];除了@retinotop外:函数可能有一个返回值。如何返回两个值(即min和max)?为此,可以使用复合类型,例如,
std::pair
。感谢这些信息让我头脑中的事情变得清晰起来,干杯主题:如果用户输入的数字大于10或根本不是数字,会发生什么?建议:养成一个好习惯,从一开始就检查用户输入的有效性…将最大值存储在单独的变量中,not inarr[0]
:如果最小值位于那里,您将丢失它并找到第二个最小值。查看您的返回值……就像在main中一样,例如,您可以将函数声明为int函数()并在返回arr[0]的末尾写入;除@retinotop外:函数可能有一个返回值。如何返回两个值(即最小值和最大值)?为此,可以使用复合类型,例如,std::pair
。感谢这些信息让我头脑中的事情变得清晰起来,干杯主题:如果用户输入的数字大于10或根本不是数字,会发生什么?建议:养成一个好习惯,从一开始就检查用户输入的有效性…将最大值存储在单独的变量中,not inarr[0]
:如果最小值位于那里,您将丢失它并找到第二个最小值。
function();
int min_val;
int max_val;
function(min_val, max_val);