1. A memory cell programming method of a flash memory, comprising: applying a preset programming voltage to a memory cell to program the memory cell; applying a first verify voltage to the memory cell to detect a programming result of the memory cell; and adjusting a programming voltage applied on the memory cell according to the programming result of the memory cell, the step comprising: determining whether a threshold voltage of the memory cell is greater than or equal to a second verify voltage; adjusting the programming voltage to a first programming voltage when the threshold voltage is greater than or equal to the second verify voltage; determining whether the threshold voltage is greater than or equal to a third verify voltage when the threshold voltage is smaller than the second verify voltage; adjusting the programming voltage to a second programming voltage when the threshold voltage is greater than or equal to the third verify voltage; and adjusting the programming voltage to a third programming voltage when the threshold voltage is smaller than the third verify voltage, wherein the first verify voltage is smaller than the second verify voltage and is greater than the third verify voltage, and the second programming voltage is greater than the first programming voltage and is smaller than the third programming voltage.