The loop at lines 28 to 32 which searches for matching account and pin is executed only on the first attempt.
When the user tries again at line 41 - 43, there is no checking.
You need to rearrange the loop structure so that after re-entering the account and pin, the search loop is executed. (No need to duplicate the code, just a change in the scope and position of the while loop).
I don't think both limit and counter are needed, after you fix the other issues, you might simplify the code to use just one or other of these.
Also, void main() is not valid - some compilers may accept it but you shouldn't rely on non-standard behaviour. It should always be int main().
No need to duplicate? Even so, I do not know how to rearrange the while loop because the nested loop is getting a bit complicated for me. Not really good with for loops
The limit and counter is just to show the number of attempts for me. It is rather simplified for me but that isn't really the matter here.
By all means use function(s) to break up the code into smaller, more manageable pieces. That is a good idea.
For the record, what I had in mind was to begin the while loop a bit like this:
27 28 29 30 31 32 33 34 35
bool success = false;
while (!success)
{
for (int j=0; !success && j<i; j++)
{
if (ID[j] == acc && Password[j] == pin)
// etc.
// etc.
... the idea being that after the user has re-entered their 2nd or 3rd try at account and pin, execution of the code will go back to the start of this loop and search for a matching value.
Though viewed from the users point of view, the behaviour seems a bit odd.
My test output:
Welcome to ABC Bank!
Account ID: 5 5
Pin:
Account ID/Pin is incorrect. Please try again! (Attempts Left: 2 )
Account ID: 5 5
Pin:
Account ID/Pin is incorrect. Please try again! (Attempts Left: 1 )
Account ID: 5 5
Pin:
Account ID/Pin is incorrect. Please try again! (Attempts Left: 0 )
Account ID: 5 7
Pin: Unauthorized Access Detected! Account Has Been LOCKED!
Press any key to continue . . .
Now it allowed me to enter the account number and pin four times. Even though on the last try, I entered valid details (acc = 5 and pin = 7) it was still rejected.
I think the problem here is that after the third incorrect attempt, it should output the "Unauthorized Access" message, instead of inviting the user to try again. The program logic needs a little bit of adjustment to make that happen.