从今天开始坚持学数据结构和算法,并写总结
计算虚数
计算这个很简单
思路:
1.先写结构体表示实数与虚数
2.用一个函数分别表达实属与虚数
3.写相加,相乘,相除的函数
tips:写函数时参数一定要用地址(指针),mmp的总是写着写着脑壳发昏参数带数(单向传递),球都出来不到。
4.带实参调用,输出
代码块:
1先写结构体表示实数与虚数
typedef struct complex
{
float realpart = 0;
float imagpart = 0;
}COMPLEX;
2用一个函数分别表达实属与虚数
void aggin(COMPLEX* a, float real, float imag)
{
a->realpart = real;
a->imagpart = imag;
}
3写相加,相乘,相除的函数
void add(COMPLEX* a, COMPLEX* b, COMPLEX* c)
{
a->realpart = b->realpart + c->realpart;
a->imagpart = b->imagpart + c->imagpart;
}
void multiply(COMPLEX* a, COMPLEX* b, COMPLEX* c)
{
a->realpart = b->realpart * c->realpart;
a->imagpart = b->imagpart * c->imagpart;
}
void divide(COMPLEX* a, COMPLEX* b, COMPLEX* c)
{
a->realpart = b->realpart / c->realpart;
a->imagpart = b->imagpart / c->imagpart;
}
主函数
int main()
{
COMPLEX* a, * b, * c, * d, * e;
a = (COMPLEX*)malloc(sizeof(COMPLEX));
b = (COMPLEX*)malloc(sizeof(COMPLEX));
c = (COMPLEX*)malloc(sizeof(COMPLEX));
d = (COMPLEX*)malloc(sizeof(COMPLEX));
e = (COMPLEX*)malloc(sizeof(COMPLEX));
aggin(a, 8.0, 6.0);
aggin(b, 4.0, 3.0);
multiply(c, a, b);
add(d, a, b);
divide(e, c, d);
printf("realpart = %f /nimagpart = %f", e->realpart, e->imagpart);
}
tips:最最最最重要的一定要给结构体变量分配内存空间
不然就
这样
在我的印象中老师说的给函数体赋初值是这样的
COMPLEX *a;
a->realpart = 0;
e->imagpart = 0;
然后我就天真的写了
a->realpart = 0;
a->imagpart = 0;
b->realpart = 0;
b->imagpart = 0;
c->realpart = 0;
c->imagpart = 0;
d->realpart = 0;
d->imagpart = 0;
e->realpart = 0;
e->imagpart = 0;
然后就
我:
然后,百度
果然,面对互联网编程yyds
大佬链接:https://blog.csdn.net/CSDN_Gao_16/article/details/110877060