如何在这里输入数组?即用户必须为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; }
答案 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()方法;