回 帖 发 新 帖 刷新版面

主题:关于C++向量的问题

程序的功能是输出向量的最大值和最小值;
代码如下:
#include"C:\Documents and Settings\mathcao\My Documents\Visual Studio 2008\Projects\std_lib_facilities.h"
int main()
{
    double a=0,temp_max=0,temp_min=0;
    vector<double>number;
    while(cin>>a){
        number.push_back(a);
        sort(number.begin(),number.end());
        temp_min=number[0];
        cout<<"The smallest so far is "<<temp_min<<endl;
        temp_max=number[number.size()];
        cout<<"The largrst so far is "<<temp_max<<endl;
    }
    return 0;
}
输入数据:1 2 3
显示结果如上传的图片所示。
现在这种方法下,为什么产生这样的结果,谢谢!

回复列表 (共2个回复)

沙发

temp_max=number[number.size()];
访问越界了。应该修改为temp_max=number[number.size() - 1];

板凳


谢谢,我自己检查出来了。那天脑子不好使。

我来回复

您尚未登录,请登录后再回复。点此登录或注册