In DS1302InputByte and DS1302OutputByte functions, you set DS1302_CLK to 1, then the next command, you set it to 0. You need to put a delay in between those two commands. A delay loop like you used in your other code should work, just make sure you loop enough times to satisfy the timing requirement.
Also, as for your array confusion, you really need to find any class notes and textbooks you have for programming C, and read through the array sections carefully. Do all the examples in the textbook. Find some tutorials on line: we have one here, and Google will turn up dozens more. Write some simple programs using arrays, but not on your embedded device, on your PC where it's easy to test and debug.