User:Average/Conquer
Conquer: This segment is about correctness. Syntactic and logical correctness.
Conceive the tightest procedural structure you need to accomplish the conceptual unit you're working on (CRUCIBLE 4), how you're going to traverse that structure (while and for loops, for example, or simply calling sequentially each subunits from your outer [main] function), and what data you're going to have that will communicate between the other conceptual units (including, finally, the top-level ones the system has provided: stdin/stdout).
Ideally, you don't confuse conceptual layers, which is why global variables are shunned. It's at this step that you might find that your programming language constrains you. In which case, you have to pull out the best weapon for the task ==>RefactorMercilessly<== and redesign your language. If your task is noble enough, that's just what you have to do. Proceed to Synthesize.