如何在C 中动态输入数组

How to dynamically input array in c++?

本文关键字:动态 输入 数组      更新时间:2023-10-16

这是一个简单的代码,我想打印作为输入的数组的元素。

int main() {
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        int *arr = new int[n];
        for(int i=0;i<n;i++)
            cin>>arr[i];
        for(int i=0;i<n;i++)
            cout<<arr[i];
        cout<<endl;
    }
    //code
    return 0;
}

输入:

2
5
1 2 3 5
10
1 2 3 4 5 6 7 8 10

uput podut podut podut

123510
2

,但这不应该是输出,因为它应该从1-10产生另一个数组。

一定有一个愚蠢的错误,但我不知道

在哪里

您的第三行输入缺失了4。

因此,它被解析为:

2  // two arrays
5  // first one size 5
1 2 3 5
10  // end of the first array
1  /* second one size 1 */ 2 /* end of the second array */ 3 4 5 6 7 8 10 
// the end is ignored

您的代码正常工作!你只是搞砸了你的输入在第一个示例中,您期望5个数字,只输入4,在第二个示例中,您期望10个数字并提供9个。如果您在[5]中创建一个数组,则最高索引为4,但是由于索引以0开头,总尺寸为5。如果这就是为什么您每次都缺少一个元素。