后面if比较多是因为复数的虚部可能是负值,而且如果答案是零的话,输出就有问题了,输出就不规范了
刚发现程序不完全,重改了一下敬上
#include "stdio.h"
#include"stdlib.h"
typedef struct
{
float read,imag;
}complex;
complex sub(complex fs1,complex fs2)
{
complex fs3;
fs3.read=fs1.read-fs2.read;
fs3.imag=fs1.imag-fs2.imag;
return fs3;
}
int main()
{
complex fs1,fs2,fs3;
float a,b,c,d;
printf("输入复数FS1实虚部:\n");
scanf("%f%f",&a,&b);
fs1.read=a;
fs1.imag=b;
printf("输入复数FS2实虚部:\n");
scanf("%f%f",&c,&d);
fs2.read=c;
fs2.imag=d;
printf("所输入的两复数分别为:\n");
printf("fs1=%f+%fi",fs1.read,fs1.imag);
printf("fs2=%f+%fi",fs2.read,fs2.imag);
fs3=sub(fs1,fs2);
if(fs3.imag>0)
printf("fs3=fs1-fs2=%f+%fi",fs3.read,fs3.imag);
if(fs3.imag==0&&fs3.read!=0)
printf("fs3=fs1-fs2=%f",fs3.read);
if(fs3.imag<0)
printf("fs3=fs1-fs2=%f%fi",fs3.read,fs3.imag);
if(fs1.read==fs2.read&& fs2.imag==fs1.imag)
printf("fs3=fs1-fs2=0\n");
if(fs3.read==0&&fs3.imag!=0)
printf("fs3=fs1-fs2=%fi",fs3.imag);
system("pause");
}