繁体   English   中英

C++ 输入空格分隔的整数并存储在 int 数组中

[英]C++ Input space separated integers and store inside an int array

我正在尝试输入 int 数组大小,然后得到 N 个空格分隔的整数,如下所示:

int main()
{

    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]<<endl;
    }
 
    if (isSpiralSorted(arr, N))
        cout << "yes" << endl;
    else
        cout << "no" << endl;
    return 0;
}

但输入:

10
1 2 3 4 5 6 7 8 9 10

实际上需要:

2 3 4 5 6 7 8 9 10

有人可以在这里帮助我了解我做错了什么吗?

您正在使用new int(N)而不是数组创建单个标量。 如果将其更改为new int[N]那么它运行良好。

你最后也忘了删除数组。

#include <iostream>

int main()
{
    int N;
    std::cin >> N;
    int *arr = new int[N];
    for(int i=0; i<N; i++) {
        std::cin>>arr[i];
    }

    for(int i=0; i<N; i++) {
        std::cout << arr[i] << std::endl;
    }
    delete[] arr;
}

神栓: https://godbolt.org/z/caza1336s

暂无
暂无

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

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