c語言資料結構練習複數操作

2021-10-23 02:43:15 字數 2598 閱讀 2697

初學c語言資料結構第一次實驗----------複數的簡單運算

筆者是一名高校在讀生,最近在學習資料結構,迷迷茫茫,在課本中的**中一點點探索。

以此篇作為部落格的開篇,望各位朋友指點。

這裡用的教材是老師推薦的嚴蔚敏教授主編的《資料結構(c語言版)》,許多**思路**於對此書的理解。

實驗內容:

複數型別的建立,複數取實部和虛部操作,複數相加相減的c語言控制台介面實現。

首先用結構體定義複數型別。

typedef

struct

complex;

這裡定義complex結構體型別,內含有兩個部分,後續可引用。

接下來是對於複數的運算的構造:

void

create

(complex &c,

float x,

float y)

float

getreal

(complex &c)

float

getimag

(complex &c)

complex add

(complex c1,complex c2)

complex sub

(complex c1,complex c2)

以上****於教材內,但直接應用於程式中行不通,所以稍加修改,「&」這個符號應在函式定義時注意,有時不加此符號,不能向主函式傳遞引數。若主函式內呼叫無果卻不報錯,可於此查錯。一定要注意區分「實參」「形參」的區別。

簡單的函式定義之後編寫主函式如下:

int

main()

switch

(choice)

else

if(tem==2)

else

printf

("任意鍵退出\n");

getch()

;break

;case2:

printf

("請輸入你要取哪個複數的虛部(1或2):");

int abc;

scanf

("%d"

,&abc);if

(abc==1)

else

if(abc==2)

else

printf

("任意鍵回主選單\n");

getch()

;break

;case3:

complex sum;

sum=

add(c1,c2)

;printf

("%f+%fj\n"

,sum.realpart,sum.imagpart)

;printf

("任意鍵回主選單\n");

getch()

;break

;case4:

complex sub;

sub=

sub(c1,c2)

;printf

("%f+%fj\n"

,sub.realpart,sub.imagpart)

;printf

("任意鍵回主選單\n");

getch()

;break;}

system

("cls");

}getch()

;}

主函式的邏輯關鍵之處在於要先產生兩個複數,才有後續的運算,所以先構造並建立兩個複數:

float a,b,c,d;

printf

("請建立複數1和複數2\n");

complex c1,c2;

printf

("輸入c1的實部:\n");

scanf

("%f"

,&a)

;printf

("輸入c1的虛部(不用寫j):\n");

scanf

("%f"

,&b)

;printf

("輸入c2的實部:\n");

scanf

("%f"

,&c)

;printf

("輸入c2的虛部(不用寫j):\n");

scanf

("%f"

,&d)

;create

(c1,a,b)

;create

(c2,c,d)

;

由於可設計為多次迴圈完成操作,不必多次開啟,所以設計while(1){}的結構進行無限迴圈控制。

當引用複數的實部和虛部時,要注意值為float型,輸出時可用「%f」,c.realpart這樣的形式輸出。

歡迎各位大神和同道學習的朋友指導!

練習 資料結構C語言描述(1 19)

1.19 試編寫演算法,計算i 2 i i 0,1,n 1 的值並分別存入陣列a arrsize 的各個分量中。假設計算機中允許的整數最大值為maxint,則當n arrsize或對某個k 0 k n 1 使k 2 k maxint時,應按出錯處理。注意選擇你認為較好的出錯處理方法。include ...

資料結構 2 鍊錶 C語言練習

用p從頭到尾掃瞄單鏈表,pre指向 p節點的前驅。若p的節點是x則刪除,並讓p後移,否則,pre和p同時移動 void del x 1 linklist l,elemtype x else 尾插法 值不為x則接入l,否則釋放 void del x 2 linklist l,elemtype x el...

資料結構 鏈棧小練習(c語言)

0.棧的建立及標頭檔案宣告 include includestruct stack struct stack init stack struct stack struct stack push stack struct stack int int pop stack struct stack int...