繁体   English   中英

打印原始数组和更改后的数组

[英]Printing original array and changed array

我正在做一个练习,我必须打印原始数组并向数组添加更多元素并打印它们。 所以 output 应该是

Original array:
[10, 20, 30]
After append values to the end of the array:
[10 20 30 40 50 60 70 80 90]

第二部分是打印,但由于某种原因,原始数组元素不会打印。

int arr[9] = {10, 20, 30};

cout << "The original array elements are : " << endl;
for (int i = 0; arr[i] <= 3; ++i) 
{
  cout << arr[i] << endl;
}

arr[3] = {40};
arr[4] = {50};
arr[5] = {60};
arr[6] = {70};
arr[7] = {80};
arr[8] = {90};

cout << "After append values to the end of the array : " << endl;
for (int j = 0; arr[j] >= 9; ++j) 
{
  cout << arr[j] << endl;
}

这是我写的代码,有人可以告诉我我做错了什么吗?

因为

for (int i = 0; arr[i] <= 3; ++i)

表示“循环直到arr[i]<=3 ”,在你的情况下这总是错误的。
你可能想要这个:

for (int i = 0; i < 3; ++i)

与第二个循环相同,而不是arr[j] >=9你可能想要j < 9

在此更改后 output 是这样的:

The original array elements are :
10
20
30
After append values to the end of the array :
10
20
30
40
50
60
70
80
90
for (int i = 0; arr[i] <= 3; ++i)

应该

for (int i = 0; i < 3; ++i)

同样, j -loop 应该检查j < 9 ,因为您要检查打印的元素(3 和 9)的数量,而不是它们的值。

如果你想使用 for 循环来打印数组的元素,你有两个选择。 您可以使用带有循环计数器的传统 for 循环,例如i 如果您想迭代部分范围,这通常是首选。 您通常将循环计数器与最后一个索引进行比较。 另一方面,如果您要遍历整个事物,更方便的选择是使用基于范围的 for 循环。 您可以在此处查看这两个示例:

#include <iostream>

int main() {
  int arr[9] = {10, 20, 30};

  std::cout << "The original array elements are :\n";

  // Traditional for-loop
  for (int i = 0; i <= 3; ++i) {
    std::cout << arr[i] << '\n';
  }

  arr[3] = {40};
  arr[4] = {50};
  arr[5] = {60};
  arr[6] = {70};
  arr[7] = {80};
  arr[8] = {90};

  std::cout << "After append values to the end of the array :\n";

  // Range-based for loop
  for (auto const elm : arr) {
    std::cout << elm << '\n';
  }
}

在此处了解有关 for 循环的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM