【问题标题】:How to Increment values of an an array using a nested-loop [closed]如何使用嵌套循环增加数组的值[关闭]
【发布时间】:2025-12-08 03:40:01
【问题描述】:

所以我需要帮助。问题是一个 int arr[5] = {0}; 我知道数组的值{0,0,0,0,0} 填充了整个数组。在代码的末尾,数组必须包含值{1,2,3,4,5}。要解决它必须使用嵌套的 for 循环。 我试过下面的代码 抱歉,如果这个问题的格式有误,这是我第一次使用手机。

      int arr[5] = {0};

       for(int j = 1; j<6; j++)
       {

         for(int i = 0; i<5; i++)
         {
           arr[i] = j;
         }
        }

【问题讨论】:

  • 这可以通过用int arr[5] = {1, 2, 3, 4, 5}; 替换你的整个代码块来轻松解决,所以我很好奇是否有任何关于你为什么需要循环的额外信息?更不用说嵌套循环了?你确定需要一个 nested 循环吗?即使对于人为的家庭作业,这种(嵌套)要求似乎也很奇怪。单个循环对于家庭作业来说是有意义的,因为它可以用来显示使用循环索引修改容器的一般概念。
  • 您尝试了代码。然后呢?这一切都非常好,你有一些冰淇淋来庆祝,对吧? :) 要获得调试帮助,请给出预期的和实际结果。你的问题越具体越好。 (一点点debugging 对您来说不会有什么坏处。)最好创建一个minimal reproducible example,以便其他人可以复制代码并复制您的结果。
  • @John 这些要求确实看起来很奇怪,但如果还要求避免使用赋值运算符,而是使用增量运算符,它们可能更有意义。我可以看到嵌套循环,内部循环的主体是arr[i]++;。有点迂回,但它可以帮助演示,例如,冒泡排序的工作原理。

标签: c++ arrays nested-loops


【解决方案1】:

我不知道这样做有什么好处,但如果你必须使用嵌套的 for 循环,以下是一个选项

int main()
{
    int arr[5] = {0};

    for(int j = 0; j < 5; ++j)
    {

        for(int i = 1; i < 2; ++i)
        {
            arr[j] = j+i;
        }
    }

    for(int i{};i<5;++i) std::cout << arr[i] << ", ";
}

或者像@JaMit 评论建议的那样

int main()
{
    int arr[5] = {0};

    for(int j = 0; j < 5; ++j)
    {

        for(int i = 0; i < j+1; ++i)
        {
            arr[j]++;
        }
    }

    for(int i{};i<5;++i) std::cout << arr[i] << ", ";
}

【讨论】:

  • @John 对不起,我没有回答这个问题,我的教授让我解决。他们特别要求嵌套 for 循环。我知道嵌套 for 循环没有意义。我什至问我是否可以只使用一个 for 循环,但他们说不行。
  • @asis 上面的一位评论者建议您可能需要使用增量运算符 (a[i]++) 而不是赋值 (a[i] = j)。是这样吗?
  • @John 这也是一个家庭作业,这就是为什么这是他们要求的非常令人沮丧的原因。
  • @John 我得到的唯一信息是这个问题,它必须使用嵌套的 for 循环。如果这让你们感到沮丧,我很抱歉,但这就是他们告诉我的。严重抱歉。我会问我是否可以使用增量运算符。尽管问题非常令人沮丧,但还是感谢你们快速而礼貌的回答。
  • @AsisrusHerrera 您可以将递增运算符arr[j]++ 替换为arr[j] = arr[j] + 1。它们是等价的。
【解决方案2】:

我猜你的教授的意思是你应该使用仅增量来生成最终结果。换句话说,我猜你不允许在int arr[5] = {0}; 行之后分配 值(所以像arr[i] = j; 这样的表达式是不允许的)。

在这种情况下,您可以通过以下方式解决问题:

int arr[5] = {0};

for (int i = 0; i < 5; i++) {
  for (int j = i; j < 5; j++) {
    arr[j]++;
  }
}

现在我们只使用了增量,最终结果是{1, 2, 3, 4, 5}

【讨论】: