Welcome to the forum, Ian!
Before you start programming, it's very helpful to sit down and do the puzzle/game/assignment by hand, without a computer.
Note the patterns you use - those are the basics of the logic for the program, since the computer will need to do the same things you did.
In a two player game, you've correctly seen that the entire game is set inside a while() loop (but a for loop or do while loop can be used).
And straight up, STOP USING those single meaningless variable names! For a simple counter, i is fine and n for a number, but once you start running amok with a, b, c, x, etc., you'll be obscuring the logic you need.
So:
Code:
int balloons = 10
int player = 1 //player 0 will play first - this is a subtlety
char players[2][30]; //holds both players names
will be some of the variables you'll want to use.
you'll want to get the players names, before the game loop starts
and store their names in players[0] and players[1].
Note that there is NO players[2], since valid index are 0 to size -1.
Code:
//start of the game loop
while(balloons>0) {
//if player is 0,
//make it 1
//else
//make it 0
//print out how many balloons are in play
//print out the players name on turn
//get their number of balloons to be popped
//and subtract them
}
announce the winner
That's a start. You WILL find subtleties as you code and test the program.
Try to make your code as CLEAR and SIMPLE as you can. If you use variable names that obscure their meaning, or write complex code, you're just making it more difficult.