>Secondly... how do you return several values with a function?
return val1, val2;
This isn't possible, but you can use a structure (struct) to do something equal:
struct multiple_vars {
int a;
int b;
int c;
};
multiple_vars add(int n1, int n2)
{
multiple_vars result;
result.a = n1;
result.b = n2;
result.c = n1+n2;
return result;
}