關於c語言中用複數的問題

2021-06-16 12:43:39 字數 997 閱讀 7000

前段時間電腦啟動不了了,就重灌了個系統。一直很懶,所以到現在還沒裝matlab,學自動化的沒有matlab真的受不了,很多東西都不能寫。

不過好在安裝了vs2010,有因為一直覺得程式語言得學好乙個,所以就複習複習c語言。至於之前雄心勃勃得想學會c++,qt,我覺得還是實在一些學學c語言吧。

時域頻域的轉換在matlab裡面實在是太容易實現了,但是c語言就不是(對我來說)。沒錯,我想用c語言代替matlab做一些事情。

不過我遇到的麻煩很多,菜鳥總是很麻煩啊!

第乙個問題是如何用c語言作圖。(這是個**煩)

matlab只需要step,plot,stem等等一下子就畫出來了,c語言做不到啊。上網查了一下,似乎只有tc才有作圖功能,vs只好用什麼mfc,gui之類的。這和c++,qt倒是聯絡上了。總之覺得這部分會非常龐大,毫不猶豫的退縮了。

第二個問題就是複數

之前被教材誤導了,覺得一定有乙個標頭檔案之類的可以在c中使用複數。c++裡面好像有,因為我看到vs有標頭檔案complex,裡面好多class。總之沒找到方法。

回頭一想覺得還是有辦法的。

我用了兩種方法。

方法1:用陣列

用兩個元素的陣列就可以輕鬆的表示乙個複數。

方法2:看了一下vs2010裡面的標頭檔案complex,注意這裡沒有「.h」,因為對類還不是很熟悉,所以就只注意了一下頭檔案的前面一部分,但是給了我很大的啟發,這裡面用的是typedef自定義乙個像結構體的型別,比如

typedef complexcomp;

這樣就可以用了。如

comp a;

a.re=2;

a.im=3;

即:a=2+i3

不過有問題就是,寫出來的程式雖然能夠編譯,能夠build,甚至能夠執行,依然有問題。我在程式裡面用scanf()初始化變數,但是輸資料到一半的時候,電腦告訴我程式停止執行。

不用scanf()的時候,程式能夠正常執行。

沒查出是是什麼原因。need your help.

關於c語言中的return問題

最近看32的 比較多,發現乙個小小的細節有點疑問。原來我們學習c語言時對於返回值,如果要返回0,那麼語句就是return 0 如果返回1,那麼語句就為return 1 但是在32 裡面我看見了return 0 還有return 1 他們有差別麼?今天在資料結構中也看見了類似的問題,決定來驗證一下 測...

關於C語言中的換行問題

1 換行,使用換行符 n 例如 printf hello n 2 回車換行,使用回車換行符 r n 例如 printf hello r n 3 對於表示式較長,想分行寫的問題,可採用兩種方式 方法一 使用 結尾作為換行標記。printf hello world 值得注意的是,針對字串換行,需要注意換...

C語言中幾個關於初值的問題

在程式中常常需要對變數賦初值,以便使用變數。語言程式中可有多種方法,在定義時賦以初值的方法,這種方法稱為初始化。在變數說明中賦初值的一般形式為 型別說明符 變數1 值 1,變數 2 值 2,例如 int a 0,b,4,c 5 float x 3.2,y 3f,z 0.75 char ch1 k c...