You are using break/continue in a non-traditional way, and I don't think you actually mean to do it that way, as there is so little benefit and huge increase in confusion from it [in fact, I think most of your confusion stems from this].
Change ALL of your continue to break.
Then use do - while instead of for(;, and set a flag based on your choice2 input.
However, you also compare choice2 with the string "y" - this will not work - choice2's location in memory will never ever match the string "y" [at least not and also function correctly with the fgets() that you are using]. You need to use strcmp or just use a compare of the first character of your string.
--
Mats