如何简单明了的输出自定义的数据结构中的数据
下面的程序是个对自定义的数据类型复数进行简单的加减运算,但是在输出复数A+复数B的时候输出变得比较的繁琐;请问有没有好的输出方法,可以变成如两个整形相加的情形(printf("%d + %d=%d"a,b,c);)?谢谢,帮忙……#include <stdio.h>
typedef struct /* 存储表示,结构体类型的定义 */
{ float x; /* 实部子域 */
float y; /* 虚部的实系数子域 */
} complex;
/* 子函数的原型声明 */
void creat(complex *c);
void outputc(complex a);
complex add(complex k,complex h);
complex sub(complex k, complex h);
complex a,b,a1,b1; int z; /* 全局变量的说明 */
void main() /* 主函数 */
{ creat(&a); outputc(a);
creat(&b); outputc(b);
a1=add(a,b); outputc(a1);
}
void creat(complex *c)
{ float x1,y1;
printf( "\n实部: real x=" );
scanf( "%f" ,&x1);
printf( "虚部: xubu y=" );
scanf( "%f" ,&y1);
c->x=x1; c->y=y1;
}
void outputc(complex a) /* 输出一个复数 */
{ printf("复数: %f + i*%f\n",a.x,a.y);
}
complex add(complex k,complex h) /* 求两个复数相加之和 */
{ complex l;
l.x=k.x+h.x; l.y=k.y+h.y;
return l;
}
complex sub(complex k,complex h) /* 求两个复数相减之差 */
{ complex l;
l.x=k.x - h.x; l.y=k.y - h.y;
return l;
}
complex chengji(complex k,complex h) /* 求两个复数相乘之积 */
{ complex l;
l.x=k.x*h.x-k.y*h.y;
l.y=k.x*h.y+k.y*h.x;
return l;
}