日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PTA 7-36 复数四则运算(详解)

發(fā)布時間:2024/3/26 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PTA 7-36 复数四则运算(详解) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言:本期是關(guān)于復(fù)數(shù)四則運(yùn)算的具體解法,今天你c了嗎?

?

題目:

本題要求編寫程序,計算2個復(fù)數(shù)的和、差、積、商。

輸入格式:

輸入在一行中按照a1 b1 a2 b2的格式給出2個復(fù)數(shù)C1=a1+b1i和C2=a2+b2i的實(shí)部和虛部。題目保證C2不為0。

輸出格式:

分別在4行中按照(a1+b1i) 運(yùn)算符 (a2+b2i) = 結(jié)果的格式順序輸出2個復(fù)數(shù)的和、差、積、商,數(shù)字精確到小數(shù)點(diǎn)后1位。如果結(jié)果的實(shí)部或者虛部為0,則不輸出。如果結(jié)果為0,則輸出0.0。

輸入樣例1:

2 3.08 -2.04 5.06

輸出樣例1:

(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

輸入樣例2:

1 1 -1 -1.01

輸出樣例2:

(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

?代碼實(shí)現(xiàn):

#include<stdio.h> #include<math.h> int main() {double a1 = 0.0;double b1 = 0.0;double a2 = 0.0;double b2 = 0.0;scanf("%lf %lf %lf %lf", &a1, &b1, &a2, &b2);char ch[10] = { '+','-', '*','/' };double real[4] = { 0 };double image[4] = { 0 };//+-*/的結(jié)果的實(shí)部分別存入real數(shù)組中real[0] = a1 + a2;real[1] = a1 - a2;real[2] = a1 * a2 - b1 * b2;real[3] = (a1 * a2 + b1 * b2) / (pow(a2, 2) + pow(b2, 2));//+-*/ 的結(jié)果的虛部分別存入real數(shù)組中image[0] = b1 + b2;image[1] = b1 - b2;image[2] = a1 * b2 + a2 * b1;image[3] = (a2 * b1 - a1 * b2) / (pow(a2, 2) + pow(b2, 2));//打印int i = 0;for (i = 0; i < 4; i++){//實(shí)部虛部都無if (fabs(real[i]) < 0.05 && fabs(image[i]) < 0.05){printf("(%.1f%+.1fi) %c (%.1f%+.1fi) = 0.0\n", a1, b1, ch[i], a2, b2);}//只有實(shí)部else if (fabs(image[i]) < 0.05){printf("(%.1f%+.1fi) %c (%.1f%+.1fi) = %.1f\n", a1, b1, ch[i], a2, b2,real[i]);}//只有虛部else if (fabs(real[i]) < 0.05){printf("(%.1f%+.1fi) %c (%.1f%+.1fi) = %.1fi\n", a1, b1, ch[i], a2, b2, image[i]);}//實(shí)部虛部都有else{printf("(%.1f%+.1fi) %c (%.1f%+.1fi) = %.1f%+.1fi\n", a1, b1, ch[i], a2, b2, real[i],image[i]);}}return 0; }

大致思路:?

1.加 減 乘 除各自都有自己結(jié)果的虛部和實(shí)部,將這四個實(shí)部集合在一起,四個虛部集合在一起

2.加 減 乘 除各自都有四種不同的結(jié)果可能:

a: 結(jié)果為0.0, b: 結(jié)果只有實(shí)部 ,c:結(jié)果只有虛部,d:結(jié)果的實(shí)部虛部都有


代碼解讀:

part 1

double a1 = 0.0;double b1 = 0.0;double a2 = 0.0;double b2 = 0.0;scanf("%lf %lf %lf %lf", &a1, &b1, &a2, &b2);char ch[10] = { '+','-', '*','/' };

1. 讀取a1,b1,a2,b2

2.將+ - * / 這四種運(yùn)算符存入字符數(shù)組中(后面的循環(huán)打印要用)


part 2?

double real[4] = { 0 };double image[4] = { 0 };//+-*/的結(jié)果的實(shí)部分別存入real數(shù)組中real[0] = a1 + a2;real[1] = a1 - a2;real[2] = a1 * a2 - b1 * b2;real[3] = (a1 * a2 + b1 * b2) / (pow(a2, 2) + pow(b2, 2));//+-*/ 的結(jié)果的虛部分別存入real數(shù)組中image[0] = b1 + b2;image[1] = b1 - b2;image[2] = a1 * b2 + a2 * b1;image[3] = (a2 * b1 - a1 * b2) / (pow(a2, 2) + pow(b2, 2));

1.用real數(shù)組存儲+ - * / 運(yùn)算結(jié)果的實(shí)部

2.用image數(shù)組存儲+ - * / 運(yùn)算結(jié)果的虛部?

tips:

復(fù)數(shù)的加法運(yùn)算:實(shí)部+實(shí)部,虛部+虛部

復(fù)數(shù)的減法運(yùn)算:實(shí)部-實(shí)部,虛部-虛部

復(fù)數(shù)的乘法運(yùn)算:(a1+b1i)*(a2+b2i)=a1*a2+a1*b2i+a2*b1i+b1*b2i^2 (就是簡單的相乘)

復(fù)數(shù)的除法運(yùn)算:(a1+b1i)/(a2+b2i):這兩個多項(xiàng)式分別乘以第二個多項(xiàng)式的共軛式:(a2-b2i)

pow函數(shù)是用于計算某個數(shù)的平方


part 3

//打印int i = 0;for (i = 0; i < 4; i++){//實(shí)部虛部都無if (fabs(real[i]) < 0.05 && fabs(image[i]) < 0.05){printf("(%.1f%+.1fi) %c (%.1f%+.1fi) = 0.0\n", a1, b1, ch[i], a2, b2);}//只有實(shí)部else if (fabs(image[i]) < 0.05){printf("(%.1f%+.1fi) %c (%.1f%+.1fi) = %.1f\n", a1, b1, ch[i], a2, b2,real[i]);}//只有虛部else if (fabs(real[i]) < 0.05){printf("(%.1f%+.1fi) %c (%.1f%+.1fi) = %.1fi\n", a1, b1, ch[i], a2, b2, image[i]);}//實(shí)部虛部都有else{printf("(%.1f%+.1fi) %c (%.1f%+.1fi) = %.1f%+.1fi\n", a1, b1, ch[i], a2, b2, real[i],image[i]);}}

1. for循環(huán)打印+ - * / 的運(yùn)算式子+結(jié)果

2.+ - * / 分別都有四種輸出結(jié)果的可能:

a: 結(jié)果為0.0, b: 結(jié)果只有實(shí)部 ,c:結(jié)果只有虛部,d:結(jié)果的實(shí)部虛部都有

用if else 語句就可解決

tips:

%+.1fi: 當(dāng)這個虛部是正數(shù)時,會顯示+,當(dāng)這個虛部是負(fù)數(shù)時,會顯示-

本期完!今天你c了嗎?

總結(jié)

以上是生活随笔為你收集整理的PTA 7-36 复数四则运算(详解)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。