I had to :lol when I saw this thread topic. I am your go-to man on retaking classes unfortunately.
People have given you pretty good advice. The way my school operated (I just graduated last year), you are allowed to retake a class and completely cover up your old grade, GPA-wise, with your new grade. The old grade would still appear on your transcript, but would have no effect on your GPA.
If you decided to take a class for the third time (that is, retake it a second time) the grade you receive the third time would be averaged with the second grade. So if you made an F the first time, an F the second time, and then a C the third time, your final grade would be F (from second try) plus C (from third try) divided by two, equals a D. So the more often you retake a class, the less each subsequent attempt affects your final grade. I actually did this a couple of times, it sounds ridiculous, but I went through some rough times while in college, worked a lot and went part-time some also.
As someone else said, the main thing to consider is the drop date. At my school, it did not matter what your grade was, if you dropped a class after the drop date, you got an F. Dropping prior to this resulted in a W, which really had no affect on your grades, but showed up on your transcript. To my knowledge, my school had no limit on retaking classes. I retook some C's here and there, because I wanted to get honors on my diploma, and I'm glad I did. It was only the bottom level honors (cum laude) but it's a distinction worth having, IMO, because so many more people finish college these days. You'd be surprised how few people graduate with any honors at all, relatively speaking. I went to a fairly large school (20,000+ students) and only a handful had any distinction at my graduation.
Regardless, best of luck with school, and I hope your college experience goes a lot smoother than mine did.
As btrboyev stated, the professor can make all the difference in the world. Do your homework on your teachers, you will be really glad you did.