所以我有一个任务,我应该设计一个结构,它包含一个复数,但也有一些函数在它们上运行,如加法,乘法和除法。
现在我的问题是我不知道如何处理数字(i)的虚部。我试着把它变成一个常量(#define我'我')然后在写一个函数时它有相互冲突的类型(例如double函数不能返回像double + char * double这样的东西)。
有关做什么的任何建议?
提醒一下:
复数是具有实部和虚部的数:C = R + iI,
我是一个虚构的单位。
答案 0 :(得分:0)
复数应为C中的struct
。
struct complex {
double real;
double imaginary;
}
因为C不支持运算符重载(例如,像C ++那样),所以你不能使用运算符" +"和" - ",而是需要实现add
和sub
等功能。
struct complex add (struct complex c1, struct complex c2) {
struct complex result;
result.real = c1.real + c2.real;
result.imaginary = c1.imaginary + c2.imaginary;
return result;
}
这回答了你问的问题 - 从c99开始,有一种C99类型可以更直接地支持复数。