在编程中编写了打印复数的函数,但是一直不能输出,源代码如下:
#include<stdio.h>
#include<math.h>
struct complex
{
double real;
double img;
};
int print_complex(struct complex z)
{
if((z.real == 0 ) && (z.img == 0))
printf("0");
if((z.real == 0 ) && (z.img != 0))
printf("%lfi\n",z.img);
if((z.real != 0 ) && (z.img == 0))
printf("%lf\n",z.real);
if((z.real != 0 ) && (z.img != 0) && (z.img > 0))
printf("%lf+%lfi\n",z.real,z.img);
if((z.real != 0 ) && (z.img != 0) && (z.img < 0))
printf("%lf%lfi\n",z.real,z.img);
return 0;
}
int main()
{
struct complex z;
printf("请输入复数的实数部分和虚数部分:\n");
scanf("%g%g",z.real,z.img);
print_complex(z);
return 0;
}
编译完成之后,不能正确输出,结果如下:
#请输入复数的实数部分和虚数部分
#4 5.0
^C
后面直接没有输出,请大家帮帮忙