在编写复数计算器的代码时,应该先扫描数字,然后扫描运算符。下面是一个示例代码:
#include<stdio.h>
int main()
{
float real1, real2, imag1, imag2;
char operator;
printf("Enter first complex number (in the form a+bi): ");
scanf("%f+%fi", &real1, &imag1); // 先扫描数字
printf("Enter operator (+,-,*,/): ");
scanf(" %c", &operator); // 再扫描运算符
printf("Enter second complex number (in the form a+bi): ");
scanf("%f+%fi", &real2, &imag2); // 再扫描数字
switch(operator)
{
case '+':
printf("Sum = %.2f + %.2fi\n", real1+real2, imag1+imag2);
break;
case '-':
printf("Difference = %.2f + %.2fi\n", real1-real2, imag1-imag2);
break;
case '*':
printf("Product = %.2f + %.2fi\n", real1*real2-imag1*imag2, real1*imag2+real2*imag1);
break;
case '/':
printf("Quotient = (%.2f + %.2fi) / (%.2f + %.2fi)\n", real1*real2+imag1*imag2, imag1*real2-real1*imag2, real2*real2+imag2*imag2);
break;
default:
printf("Invalid operator.\n");
}
return 0;
}