Is there a compiler that I can use to run C on an arduino or any other way so that I can upload C programs to my arduino?
Perhaps you should look into here https://github.com/arduino/Arduino/wiki/Build-Process
Arduino uses avr-gcc compiler. Basically, it is a C compiler.
There is an step by step on how to customize this process using an avr-gcc compiler of your own here http://www.wikihow.com/Write-Arduino-Software-in-C
But I best recommend you downloading the arduino IDE on the official website to get things going. It has all the serial pairing stuff you don't really need to know to get started.
Hope it helps.