You need to redefine your loop, so that:
- the index starts at its highest value
- the index decrements on each iteration (instead of incrementing)
- the loop stops when the index is lower than the index of the first item
You're misunderstanding me.
I've already told you that you should initialise i to be the value of the index of the final argument. I'm asking you what that value should be.
(Hint: if an array has, say, 5 elements, then what is the index of the final element in the array?)
You've got the start value of i correct, and you're decrementing it properly.
So, the values of i are going to start at argc-1 - which is correct - and the loop will stop iterating when when i is -2 (because i + 1 will be -1, which is less than 0).
Clearly, that can't be right, as it will mean you try to access argv[-1], which is outside the bounds of the array.
We've already established that the index of the first element in argv (or in any array) is 0, so you can't go lower than that. In fact, the first element in argv will be the name of the program, so you should decide whether you want to include that in your output or not.
Based on that decision, you want to stop either when i < 1, or i < 0.