如何从用户获取数组输入?

时间:2018-01-17 14:04:40

标签: c++ arrays

如何在这里输入数组?即用户必须为arr []而不是arr [] =(0,-1,2,-3,4}给出5个值。如果我给arr []它显示错误。我是一个begginer所以请帮助我。

using namespace std; // function to print triplets with 0 sum 

void findTriplets(int arr[], int n) 
{

bool found = false;

    for (int i=0; i<n-1; i++)
    {
        // Find all pairs with sum equals to
        // "-arr[i]"
        unordered_set<int> s;
        for (int j=i+1; j<n; j++)
        {
            int x = -(arr[i] + arr[j]);
            if (s.find(x) != s.end())
            {
                printf("%d %d %d\n", x, arr[i], arr[j]);
                found = true;
            }
            else
                s.insert(arr[j]);
        }
    }

    if (found == false)
        cout << " No Triplet Found" << endl; }

int main()

{

    int arr[] = {0, -1, 2, -3, 1};

    int n = sizeof(arr)/sizeof(arr[0]);

    findTriplets(arr, n);

    return 0; }

1 个答案:

答案 0 :(得分:0)

最简单的方法是在循环中从用户和cin arr获取n:

int n;
cin >> n;
int arr[n];

for (int i = 0; i < n; ++i) {
    cin >> arr[i];
}

findTriplets(arr, n);

如果你不想传递数组的大小,你可以使用std :: vector而不是array,以及push_back()方法;