關於一些C 程式設計的領悟

2021-03-31 18:08:25 字數 818 閱讀 6252

學校剛剛開了程式設計課,因為我是學軟體開發的,當然就對這個東西很感興趣。由於本人是大一的新生,水平也有限,對c也是不很熟悉,為了達到自己的要求,就在這裡對我所遇到的問題和如何解決的和大家一起分享。希望和我同個級別的也能從中學到些東西。

下面是我在實際操作中遇到的問題:

說的是如何利用c求解e的近似值:e=1+1/1!+1/2!+1/3!+……+1/n!這是e的泰勒展開式;

我開始時候的解決方案如下:

#include "stdio.h"

void main()

printf("aha anwser is :%f/n",e);

}結果發生編譯錯誤:0 個error 1 個warning

也就是可以通過 但不完整 , 因為這個無關大局,所以我直接執行。

結果是3.928968 和實際結果相差很大

後來我回去檢查,發現問題出在for 迴圈上。

s=1時可以理解。當s=2時,k=1.0/s*s   顯然這不是我們想要的結果。屬於邏輯上的不明確。

接下來我就找出來,我對自己的排錯還是滿滿意的其實很簡單 當時沒看見,我只要將

因為我這麼做可以使的變數t的值再次被系統利用,上次的t值這次被賦予給新的t從而t=1/1*2*3……*n=1/n!

這個就是我要的算式,k的變數也可以剩去了。

#include "stdio.h"

void main()

printf("aha anwser is :%f/n",e);

}這樣的結果是正確的,e=2.718282。

通過對邏輯的解釋可以看出程式的漏洞,這是編譯所檢查不出的,這需要你長久的經驗和邏輯辨別能力。

關於廣度優先搜尋的一些領悟

也不算是領悟吧,就是一些感想,樹的bfs很簡單,應該輕車熟路了,就是把節點放在佇列中,每次都把他的子節點再放進去,無腦遍歷就行了,因為樹相當於是有向的圖,所以不用標記每個點是否被遍歷過,因為每個點肯定都只遍歷一次,但是今天遇到了圖的bfs,說實話,圖一直都沒有複習,所以對於這種問題,思路還是沒那麼清...

關於程式設計的一些思考

1 其實高階語言和麵向過程的語言最求的目標都是一致的,高可複用性,另外,封裝性。我發現自己在寫c語言的時候,總是不自覺地就引入了高階語言的一些封裝性的思想 如以下 段1所示 而我的同學卻總是按著最原始的方式對函式進行命名。學過編譯原理的同學就會知道,最原始的c 編譯器其實就是將c 轉化成c語言,然後...

關於程式設計的一些思考

1 其實高階語言和麵向過程的語言最求的目標都是一致的,高可複用性,另外,封裝性。我發現自己在寫c語言的時候,總是不自覺地就引入了高階語言的一些封裝性的思想 如以下 段1所示 而我的同學卻總是按著最原始的方式對函式進行命名。學過編譯原理的同學就會知道,最原始的c 編譯器其實就是將c 轉化成c語言,然後...

關於MTK socket程式設計的一些經驗

static int myint unsigned char p static short myshort unsigned char p 7.cmwap的http協議模擬 cmwap必須通過10.0.0.172 80埠進行 走http協議.一般是1.1 x online host後面跟著的就是目標...

關於SOCKET程式設計的一些整理!

1.int socket int af int type int protocol 1.首先來看af 協議域又稱協議族,協議族決定了socket的地址型別,在通訊中必須採用對應的地址,2.type 指socket型別,常用到的有 sock stream sock dgram sock raw soc...