This is what I currently have. I've been messing with declarations and things just to see if it makes any difference, so I know the type identifiers are probably all wrong.
Code:
void sub_sum(float *x1, float *i1, float *x2, float *i2)
{
const char num1, num2;
float a1, a2, b1, b2;
char endptr1, junk, endptr2;
a1 = 0;
a2 = 0;
b1 = 0;
b2 = 0;
printf("Enter first complex number: ");
scanf("%c", &num1);
printf("Enter second complex number: ");
scanf("%c", &num2);
a1 = strtod(num1, &endptr1);
b1 = strtod(endptr1, &junk);
a2 = strtod(num2, &endptr2);
b2 = strtod(endptr2, &junk);
x1 = &a1;
i1 = &b1;
x2 = &a2;
i2 = &b2;
printf("%.6f %.6f \n", *x1, *i1);
printf("%.6f %.6f \n", *x2, *i2);
}