【问题标题】:How do I multiply vector integers如何将向量整数相乘
【发布时间】:2021-11-20 00:08:36
【问题描述】:

所以基本上我想使用 for 循环将向量乘以 60,从秒到分钟和小时 3 次。我还想在该向量中再添加 3 个值,这些值应该存储一个比它之前的最后一个整数大 60 倍的值。

这是我到目前为止提出的,但它只打印了 2 次,所以我做错了什么?

#include <iostream>
#include <vector>

int main() {
    std::vector <int> seconds = { 1 };

    for (int i = 0; i <= 3; i++) {
        i = seconds.at(i) * 60;
        seconds.push_back(i);
    }
    
    for (int i = 0; i < seconds.size(); i++) {
        std::cout << seconds[i] << std::endl;
    }

    return 0;
}

【问题讨论】:

  • 使用您的逐步调试器。如果你没用过,为什么不呢?

标签: c++ visual-c++


【解决方案1】:

这个 for 循环只重复一次。

std::vector <int> seconds = { 1 };

for (int i = 0; i <= 3; i++) {
    i = seconds.at(i) * 60;
    seconds.push_back(i);
}

i 设置为 60,然后循环条件 i &lt;= 3 失败。

使用不同的变量来保存这个值。

std::vector <int> seconds = { 1 };

for (int i = 0; i <= 3; i++) {
    auto x = seconds.at(i) * 60;
    seconds.push_back(x);
}

或者根本不使用变量。

std::vector <int> seconds = { 1 };

for (int i = 0; i <= 3; i++) {
    seconds.push_back( seconds.at(i) * 60 );
}

【讨论】:

  • 谢谢,这成功了!!!
猜你喜欢
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
  • 2016-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多