#include<bits/stdc++.h>
using namespace std;
int main() {
int a[5] = {1, 2, 3, 4, 5};
int k;
cin >> k;
int i, j, ct;
i = 0;
j = 4;
ct = 0;
while (i < j) {
if (a[i] + a[j] > k) {
--j;
}
else if (a[i] + a[j] < k) {
++i;
}
else {
ct++;
}
}
cout << ct;
}
Trying to print the total number of pairs ct
in a given sorted array whose sum is equal to k
, k
is any given input. But the problem is, value of i
changes once and value of j
remains same. why? hence i < j
is always true
and loop runs to infinite hence no certain value of ct
comes out. Where is the problem in this code?