【问题标题】:How to Repeat an integer multiple times in C++ [closed]如何在 C++ 中多次重复整数 [关闭]
【发布时间】:2021-12-17 23:31:43
【问题描述】:
#include <iostream>
#define el '\n'
using namespace std;

int main(){
    int T;
    int i;
    cin >> T;
    int N[i];
    for(int i=0; i < T; i++){
        cin >> N[i];
    }
    for(int i=0 ; i < T ;i++){
        cout << N[i] << el;

    }

}

如果输入是:

3
3
4
6

我需要的输出是:

3 3 3
4 4 4 4
6 6 6 6 6 6

我可以对第 14 行进行哪些更改来解决问题?

【问题讨论】:

  • int i; int N[i] 是不受支持的语法或 UB,具体取决于您的编译器和设置
  • 另外,这不是标准 C++
  • 另外你可能打算写int N[T];而不是int N[i];
  • 你看到你写的那些循环了吗?这些是多次执行某事的代码的完美示例。
  • 仅供参考,您的 #define 正在保存 2 个字符。恕我直言,不值得失去可读性。

标签: c++ c++11


【解决方案1】:

您需要打印每个数字N[i] 次,并且您已经知道如何做到这一点 - 使用循环。

但是输入的数量是T,而不是i - 你永远不会给int N[i]; 中的i 一个有意义的值。
另外,可变长度数组不是 C++ 标准的一部分,所以即使你使用int N[T],你也没有标准的 C++ 程序。

幸运的是,您根本不需要数组 - 您可以依次读取每个数字并多次打印:

int main(){
    int T;
    cin >> T;
    for (int t = 0; t < T; t++)
    {
        int x;
        cin >> x;
        for (int i = 0; i < x; i++)
        {
            cout << x << ' ';
        }
    }
    cout << '\n';
}

【讨论】:

  • 很好,不用向量!
猜你喜欢
  • 2014-01-04
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-13
  • 2019-10-10
  • 2017-03-12
相关资源
最近更新 更多