Ignoring the c=1 -> c==1 part, since that was already addressed...
First problem I see is that you're passing 'a' to function 'c'. What is 'a'? You must define a type for 'a'. No, it will not use your previously-defined 'a' variable here. However, the compiler probably won't generate an error here and will assume that you meant 'a' was an integer. It should generate a warning though.
I don't know if the question got answered somewhere in the part where you guys got off on a tangent, but if this is the code verbetim, then your problem is that your function name is 'c' and you can't say 'c == 1' when 'c' is your function name. Then you return 'c'? You can't return 'c' because its your function name. Well, technically you could, but I'm sure that's not what you intended to do because you'd be returning the memory address of your funct--you know what, lets just say you can't return a function name. The compiler will also throw a fit when it gets to the point where you've declared 'c' as an integer, because it's already identifying 'c' as your function name.
If you imagine the function as a grocery store and the variables as items in the grocery store, then the if statement that I quoted would read something like this: Take 'a' to the store and come back with an item (line: int c(a) ). If the store is one (line: if(c == 1) ), then come back with the store (line: return c;). That makes no sense to you for the same reason that it makes no sense to the compiler.
Sounds like your main problem is that your variables and functions share the same naming convention and you're confusing the hell out of your compiler. There are several more problems with your code besides that, but to answer just your question and not do your actual homework problem, this should be sufficient to get you started.