我刚开始使用向量,我想做的是创建一个大小为3的向量,该向量具有float数据类型并打印出元素。这是我所做的
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n;
cin>>n;
float ip;
vector<float> v;
for(int i=0;i<n;i++)
{
v.push_back(ip);
cin>>ip;
}
for (auto i = v.begin(); i != v.end(); ++i)
cout << *i << " ";
}
执行 第一个输入是向量的大小 以下各行包含数据
3
11.2
23.4
33.1
预期输出
11.2 23.4 33.1
我实际上得到了什么
5.88233e-39 11.2 23.4
我不明白这个第一个价值是什么,我如何克服它,任何帮助都是值得的。预先感谢。
答案 0 :(得分:0)
带有e-34的数字表示该数字的大小非常小,以至于基本上等于“ 0”。当您分配double的数据结构但未为其分配值时,通常会发生这种情况。在您的程序中,您没有在将其插入数据结构之前分配给ip
。我建议您在编码之前先用伪代码弄清楚程序的逻辑。
答案 1 :(得分:0)
当您只写“ float inp;”时变量inp具有随机值,因为未初始化。然后将这个随机值添加到向量中,然后读取第一个输入。只需在第一个for循环内切换行,它应该可以工作。