回覆列表
  • 1 # 紅淚偷垂一夢味少

    定義一個struct作為複數,然後分別定義加減剩除運算。可以增加一個函式printcomplex來在主函式中以數學的形式輸出複數。

    typedefstructcomplex

    {

    doublereal;//實部

    doubleimage;//虛部

    }COMPLEX;

    COMPLEXadd(COMPLEXa,COMPLEXb)//加法

    {

    COMPLEXsum;

    sum.real=a.real+b.real;

    sum.image=a.image+b.image;

    returnsum;

    }

    COMPLEXsub(COMPLEXa,COMPLEXb)//減法

    {

    COMPLEXdiff;

    diff.real=a.real-b.real;

    diff.image=a.image-b.image;

    returndiff;

    }

    COMPLEXmul(COMPLEXa,COMPLEXb)//乘法

    {

    COMPLEXacc;

    acc.real=a.real*b.real-a.image*b.image;

    acc.image=a.real*b.image+a.image*b.real;

    returnacc;

    }

    COMPLEXdivi(COMPLEXa,COMPLEXb)//除法

    //除法去分母可以轉換為乘法

    {

    COMPLEXquo;

    doubleden=b.real*b.real+b.image*b.image;//分母

    /*先判斷除數是否為0,因為均為double型,所以不能直接與0作比較,而要用絕對值是否小於某個極小值e(讀伊夫西龍???)來判斷是否為0,這裡取e=10e-10*/

    if((abs(b.real)

    {

    printf("DivivdbyZero");

    exit(0);//強制退出程式

    }

    quo.real=a.real*b.real+a.image*b.image;

    quo.real/=den;

    quo.image=a.image*b.real+a.real*b.image;

    quo.image/=den;

    returnquo;

    }

    voidprintcom(COMPLEXa)//輸出複數a

    {

    printf("%lf+%lfi",a.real,a.image);

    }

  • 中秋節和大豐收的關聯?
  • 新鮮白果的食用方法有哪些?