在使用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;
最佳答案
您需要将low初始化为一个不为0的大值,否则
if(low > vecList[i])
永远不是真的