Make your variable names meaningful. Don't use abortions like Hungarian notation. Avoid obscure abbreviations and when you do use them use standard consistent abbreviations so that everyone can understand your code.

Bad code: for(i=0;i < j;i++){ /*stuff*/}

Good code: for (ThisBox=0; ThisBox < TotalNumBoxes;ThisBox++){ /*stuff*/}