Haxe [1] does this.
There used to be a C back-end for LLVM ("cbe"). It was removed in 3.1 (circa 2012; "The C backend has been removed. It had numerous problems, to the point of not being able to compile any nontrivial program.").
The big problem I've seen is that C and other languages that make heavy use of macros might be almost impossible to unwind to source code again.
Pascal, Lisp, Forth might be more reasonable targets for something like this.
What you're talking about is called a Transpiler and there are are several instances of them. However, they typically perform a one-to-one translation are not general enough to translate to many languages. The overall issue with this is that certain higher level abstract operations in one language (perl hashes for example) might be easily unrolled and translated to C, but the reverse is not true. Compiling works best from higher to lower levels.