找到向量中的最小值

时间:2016-03-16 17:03:55

标签: c++ arrays vector stl

在使用STL进行编程时,我很新,我认为我已经掌握了它。但我对这一点感到有些困惑。我的目标是获取5个值,然后打印出我的值,打印其中的最高值,打印平均值,并打印其中最低值(我的问题)。似乎我的变量"低"赋值为0,我不知道为什么会这样。我已经测试过,看看我的价值观是否被阅读,据我所知,他们是。所以如果有人可以请我告诉我为什么我似乎无法获得适当的最低价值,我将非常感激。谢谢你的时间。

vector<double> vecList;
int x = 0;
double high = 0;
double low = 0;
double sum = 0;

cout << "Enter Integer Values, then press Ctrl(z) to Quit:" << endl;

for (int i=0; i < 5; i++)
{
 cin >> x;
 sum = sum + x;
 vecList.push_back(x);
}
vector<double>::iterator intVecIter;

cout <<"List contains: ";
for (intVecIter = vecList.begin(); intVecIter != vecList.end(); ++intVecIter)
cout << *intVecIter << " ";
for (int i=0; i < 5; i++)
 {
    if(vecList[i] > high)
    {
            high = vecList[i];
    }
// prints out "0"
    if(low > vecList[i])
    {
            low = vecList[i];
    }
 }
cout << endl << "Largest: "<< fixed << setprecision(2) << high << endl;
cout << "Smallest: "<< fixed << setprecision(2) << low << endl;
cout << "Average: " << fixed << setprecision(2)<< (sum/5);
return 0;

2 个答案:

答案 0 :(得分:2)

由于您正在尝试学习STL,请查看algorithms library并且它有一些辅助函数,它们将给出给定范围的min,max和sum(累积是实际函数名称)。 / p>

答案 1 :(得分:0)

你需要初始化低到大值而不是0,否则这个

   if(low > vecList[i])

永远不会是真的