寻找两个最大的乘积

时间:2020-09-20 21:46:47

标签: visual-c++

#include<iostream>
#include<vector>
using namespace std;
int max(const vector<int>& num,int n)
{   
    int n_index=-1;
    int m_index=-1;
    for(int i=0;i<n;i++)
    {
        if(m_index==-1||num[m_index]<num[i])
        m_index=i;
    }
    for (int i=0;i<n;i++)
    {
        if((i!=m_index) && (n_index==-1)||(num[n_index]<num[i]))
        n_index=i;
    }
    int product=num[n_index]*num[m_index]; 
    cout<<"output "<<num[m_index]<<" "<<num[n_index]; 
    cout<<"product "<<product;
}
int main()
{   
    int n; 
    cout<<"enter the no ";
    cin>>n;
    
    vector<int>num(n);
    for(int i=0;i<n;i++)
     cin>>num[i];
    max(num,n);
}

在我的max函数的第二个for循环中,用“ j”替换“ i”后,代码可能起作用,但是如果我使用“ i”,为什么它不起作用,因为“ i”对于for循环而言是局部的?

1 个答案:

答案 0 :(得分:0)

我已经尝试过您的代码。看来max函数应该是非返回类型。

void max(const vector<int>& num,int n)
{   
...
}

该程序将与'i'一起使用。

相关问题