首页 > 解决方案 > 矢量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] << ", ";}

标签: c++for-loopwhile-loopcircuit-breaker

解决方案


在下面的 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<<" ";

推荐阅读