複數四則運算 PAT

2021-07-10 07:15:45 字數 1588 閱讀 5800

原題如下:

本題要求編寫程式,計算2個複數的和、差、積、商。

輸入在一行中按照a1 b1 a2 b2的格式給出2個複數c1=a1+b1i和c2=a2+b2i的實部和虛部。題目保證c2不為0。

分別在4行中按照(a1+b1i) 運算子 (a2+b2i) = 結果的格式順序輸出2個複數的和、差、積、商,數字精確到小數點後1位。如果結果的實部或者虛部為0,則不輸出。如果結果為0,則輸出0.0。

2 3.08 -2.04 5.06
(2.0+3.1i) + (-2.0+5.1i) = 8.1i

(2.0+3.1i) - (-2.0+5.1i) = 4.0-2.0i

(2.0+3.1i) * (-2.0+5.1i) = -19.7+3.8i

(2.0+3.1i) / (-2.0+5.1i) = 0.4-0.6i

1 1 -1 -1.01
(1.0+1.0i) + (-1.0-1.0i) = 0.0

(1.0+1.0i) - (-1.0-1.0i) = 2.0+2.0i

(1.0+1.0i) * (-1.0-1.0i) = -2.0i

(1.0+1.0i) / (-1.0-1.0i) = -1.0

該題需要注意的地方有以下幾點:

1、判斷ch1, ch2, ch3的正負,也即b1、b2和計算結果的虛部是否小於零;

2、需要將輸入的四個值保留1位小數輸出;

3、計算結果不是用保留了1位小數的四個值,而是用原來的輸入值,比如第乙個測試用例的加,如果按照四捨五入之後的數進行計算的話,所得虛部應該是8.2的,而用原來的3.08+5.06得到的值卻是8.1;

4、在對double型資料進行非零判斷時不能用a == 0或者a!=0這樣的語句(a是double型的),而應該用fabs(a - 0) < 0.05 和 fabs(a - 0) >= 0.05;

**如下:

#include #include int main()

; for (i = 0; i < 4; i++)//輸入四個係數,並且保留一位小數字

else

}if (ratio[1] < 0)

ch1 = '-';

else

ch1 = '+';

if (ratio[3] < 0)

ch2 = '-';

else

ch2 = '+';

for (i = 0; i < 4; i++) }

return 0;

}

複數四則運算

include include struct complex void initcomplex complex c,float r1,float r2 void addcomplex complex c,complex c1,complex c2 void subcomplex complex c,...

6 17複數四則運算

設計複數庫,實現基本的複數加減乘除運算。輸入時只需分別鍵入實部和虛部,以空格分割,兩個複數之間用運算子分隔 輸出時按a bi的格式在螢幕上列印結果。參加樣例輸入和樣例輸出。注意考慮特殊情況,無法計算時輸出字串 error 樣例輸入 2 4 3 2 樣例輸出 14 8i 樣例輸入 3 2 1 3 樣例...

5 36 複數四則運算

本題要求編寫程式,計算2個複數的和 差 積 商。輸入格式 輸入在一行中按照a1 b1 a2 b2的格式給出2個複數c1 a1 b1i和c2 a2 b2i的實部和虛部。題目保證c2不為0。輸出格式 分別在4行中按照 a1 b1i 運算子 a2 b2i 結果的格式順序輸出2個複數的和 差 積 商,數字精...