Just a few comments on your code, just for future reference and assignments
as said by lagged: int main(int argc, char *argv[]). You don't need those parameters, your current program would be fine with int main(void). The parameters you specified argc=number of arguments and argv is an array of the actual arguments. So if you executed the program as "#> ./yourprog 80 90 100" then argc would be 4 and argv = {"yourprog", "80","90","100"}. No biggy, just so you know what's going on.
The double operator seems a little over kill. Modern computers are going to be OK with a little program like this that takes up way more space than it should, but once you advance further you should be aware of the memory sizes of your data types. int = 2^16 or 2 bytes of data. where a double, is well, double

2^32 is HUGE. Sticking to integers would also fix your compile time warnings from your inadvertant casting of ints->double, double->ints etc.
system("PAUSE"); is a direct system call searching for a program PAUSE. I don't have pause in linux, so this doesn't work. generally if you'd like to pause a bit at the end of a program which is both windows/mac/linux compat you can use the sleep(int time) function.
your factorial function doesn't check conditions. Since you're using straight integers, not unsigned ints, i could pass in a negative #. You can't do factorial computation on negative #'s. Similiarly for power(). you CAN however raise something to a negative power, but if I were to pass in a negative # into the function it would just keep on computing the power until the programs heap/stack blew up
Other than that, it's not bad. Sounds like a good lil assignment as a primer to C. Of course, there isn't any C++ code in there other than the stream libraries and using cout instead of printf.
If you need any programming help you can always post here (looks like there are some programmers amongst us), and I'd love to help out a supra buddy in need
