c++ - 矢量while循环仅返回断路器?
问题描述
练习制作可以存储数据的向量(最终求和以找到平均值等)。
我已经完成了几个“向量... ”、“ while 循环”和“ for (int i=0....) ”循环来输入变量并表达所述向量。当我这次尝试时,每次“for循环”都会显示断路器“ while data1!= -1).... ”
重申一下,我输入的每个变量的输出都是“-1”,这在早期代码中没有发生,见最底部。第一个代码块是问题代码:请帮助。提前致谢。
void stats() {
double data1; //float average;
std::vector<double> set1;
std::cout << "enter value for data1" << endl; std::cin >> data1; set1.push_back(data1);
while (data1 != -1) {
std::cout << " enter values for data " << endl; std::cin >> data1;
set1.push_back(data1); //double sum1 = data1 + data1;
}if (data1 = -1) { set1.pop_back(); }
std::cout << "finished putting in data " << endl;
for (size_t m = 0; m < set1.size(); m++) {
std::cout << data1 << ", "; }
std::cout << "end of lists; " << endl; //std::cout << sum1;
}
以前有效的代码:显示我在做基本相同的事情:
std::vector<int> set;
int g; std::cout << "enter ge" << endl; std::cin >> g; while (g != -1) { std::cout << "enter another fucking variable for g;" << endl; std::cin >> g; set.push_back(g); };
if (g = -1) { set.pop_back(); }
for (size_t I = 0; I < set.size(); I++) {std::cout << set[I] << ", ";}
解决方案
在下面的 for 循环中,您正在打印存储在 data1 变量中的值。并且 data1 变量包含 -1。这就是为什么你得到 -1 作为输出。
for (size_t m = 0; m < set1.size(); m++) {
std::cout << data1 << ", "; }
您可以将变量 data1 更改为 set1[m],如下所示
for (size_t m = 0; m < set1.size(); m++) {
std::cout << set1[m] << ", "; }
或者你可以像下面这样使用每个
for(double num : set1)
cout<<num<<" ";
推荐阅读
- asynchronous - 无法让计算在颤振上工作
- c# - 在鼠标悬停的图像标签中放大图像
- firebase - Firebase Google Auth 离线 access_type 以获取 refresh_token
- sympy - 如何在 sympy 中扩展具有多个变量的对数?
- php - 收到新请求时中止繁重的 apache 请求
- sql - 具有 oracle 数据库表的搜索引擎
- c++ - 如何使用 c++ 中的 ipp 库从信号中生成 fft?
- javascript - offset().top 在附加元素上没有返回正确的值
- apache-kafka-streams - 更改 KStream 的滑动窗口应用程序的窗口大小\跳数
- xamarin.forms - 如何为 Xamarin.form ListView 实现 MVVM