具体体现在每次运行,他就说按任意键,然后随便按一个键,他就跳没了,然后就直接没有编译结果,请问这是什么问题,求解答
#include<stdio.h>
typedef struct{
float real;
float imag;
}complex;
void show(complex x){
if(x.real!=0){
if(x.imag>0){
printf("%.2f+i%.2f\n",x.real,x.imag);
}
else
if(x.imag==0)
printf("%.2f\n",x.real);
else{
x.imag=-x.imag;
printf("%.2f-i%\n",x.real,x.imag);
}
}
else{
if(x.imag>0)
printf("i%.2f\n",x.imag);
else{
x.imag=-x.imag;
printf("-i%.2f\n",x.imag);
}
}
}
void add(complex x,complex y){
complex sub;
sub.real=x.real+y.real;
sub.imag=x.imag+y.imag;
show(sub);
}
void minus(complex x,complex y){
complex sub;
sub.real=x.real-y.real;
sub.imag=x.imag-y.imag;
show(sub);
}
void mulit(complex x,complex y){
complex sub;
sub.real=x.real*y.real-x.imag8y.imag;
sub.imag=x.real*y.imag+x.imag*y.real;
show(sub);
}
float separate_real(complex x){
return x.real;
}
float separate_imag(complex x){
return x.imag;
}
int main(){
int i;
complex a,b;
print("需要输入的复数个数(1或2)");
scanf("%d",&i);
if(i==1){
print("分别输入实部虚部;");
scanf("%f%f",&a.real,&a.imag);
print("\n显示:a=");
show(a);
}
else{
print("分别输入两个复数的实部虚部;");
scanf("%f%f%f%f",&a.real,&a.imag,&b.real,&b.imag);
print("\n显示:a=");
show(a);
print("b=");
show(b);
print("\n和:a+b=");
add(a,b);
print("\n差:a-b=");
minus(a,b);
print("\n积:a*b=");
multi(a,b);
}
}