Maybe your just using a language that doesn't relate to you? Have you tried writing in Java? PHP? Ruby? You might be a crappy C programmer but excel in Java.
I sucked in FoxPro but really excel at PHP and am getting pretty good at Obj-C. It's all a matter of how badly you want to learn something. PHP is my career, but I want to be an iOS developer. So everyday, I try. I fail often, but the more I've worked with the language, the better I've gotten and I struggle with it less now adays.