我应该使用什么类型的数据来表示复数? (C语言)

时间:2018-01-09 18:18:08

标签: c types structure

所以我有一个任务,我应该设计一个结构,它包含一个复数,但也有一些函数在它们上运行,如加法,乘法和除法。
现在我的问题是我不知道如何处理数字(i)的虚部。我试着把它变成一个常量(#define我'我')然后在写一个函数时它有相互冲突的类型(例如double函数不能返回像double + char * double这样的东西)。
有关做什么的任何建议?
提醒一下:
复数是具有实部和虚部的数:C = R + iI,
我是一个虚构的单位。

1 个答案:

答案 0 :(得分:0)

复数应为C中的struct

struct complex {
   double real;
   double imaginary;
}

因为C不支持运算符重载(例如,像C ++那样),所以你不能使用运算符" +"和" - ",而是需要实现addsub等功能。

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类型可以更直接地支持复数。