知识点补充:

                    1,struct   数据结构体,成员是全局

                                             

struct CPLX //数据结构体,成员是全局     ;按格式输入一个复数,存入cx所指的内存中。
{
int a;
int b;
};

                    2,->用法:  在C语言中称为间接引用运算符,是二目运算符,优先级同成员运算符“.”

                                           p->a,其中p是指向一个结构体的指针,a是这个结构体类型的一个成员。表达式p->a引用了指                                             针p指向的结构体的成员a

                                           (*p).a,和p->a完全等效

.          输入:                               

void get_cplx(struct CPLX *cx) //->在C语言中称为间接引用运算符
{

scanf("%d %d",&cx->a,&cx->b);
}

                                                      &cx相当于函数,且&cx也必须声明struct,且定义有*

            输出:

void put_cplx(struct CPLX cx)
{
printf("%d %d\n",cx.a,cx.b);
}

           

#include <stdio.h>
struct CPLX   //数据结构体,成员是全局
{
   int a;
   int b;
};
void get_cplx(struct CPLX *cx)  //->在C语言中称为间接引用运算符
{

   scanf("%d %d",&cx->a,&cx->b);
}
void put_cplx(struct CPLX cx)
{
    printf("%d %d\n",cx.a,cx.b);
}
struct CPLX add_cplx(struct CPLX cx1, struct CPLX cx2)
{
   struct CPLX cx;
   cx.a=cx1.a+cx2.a;   //因为两次都是输入a,b;相加时候得以区分
   cx.b=cx1.b+cx2.b;
   return cx;
};
struct CPLX sub_cplx(struct CPLX cx1, struct CPLX cx2)
{
  struct CPLX cx;
   cx.a=cx1.a-cx2.a;   
   cx.b=cx1.b-cx2.b;
   return cx;
};

int main()
{
    struct CPLX ab, cd;
    int cases;
    scanf("%d", &cases);
    while(cases--)
    {
        get_cplx(&ab);
        get_cplx(&cd);
        put_cplx( add_cplx(ab, cd) );
        put_cplx( sub_cplx(ab, cd) );
    }
    return 0;
}