#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循环而言是局部的?
答案 0 :(得分:0)
我已经尝试过您的代码。看来max函数应该是非返回类型。
void max(const vector<int>& num,int n)
{
...
}
该程序将与'i'一起使用。