重拾C C 程式設計入門

2021-10-02 11:42:00 字數 3557 閱讀 1450

在自己大學的認知過程中,大一自己很不在意c,認為又難又沒用,但隨著自己的學習和對計算機專業的認證加深,自己還是覺得掌握c/c++並沒有那麼不堪。

這裡以dev-cpp為例,因為之前學過c了,這裡的c/c++我就寫的簡潔一點了,可能有的地方會看的很莫名。

本系列以演算法競賽書籍為參考撰寫。

#include

intmain()

我們對應輸出結果看一下

注意的東西:

下面我們來試試複雜的計算題,計算一下1+2×根號3÷(5-0.1)。

#include

#include

//匯入math.h標頭檔案

intmain()

sqrt()是math.h的函式,所以我們需要匯入math.h標頭檔案,才能使用sqrt()函式。

現在,來乙個常見數學題:

一有頂圓柱體,底為半徑為r的圓,高為h,計算它的表面積。

#include

#include

intmain()

const是常數(值不會變的數)的宣告。

演算法競賽中,輸入輸出必須嚴格按要求來,輸出完程式就應該結束,不用加什麼getchar(),system(「pause」)什麼的。

每行輸出均應為回車符結束,包括最後一行。除非特別說明,每行行首不應用空格,但行末通常可以有多餘空格。另外,輸出的沒兩個數或者字串之間以單個空格隔開。

%為取餘,比如3%2為1,10%2為0,30%14為2。

不過這個題目有個bug,如果最後一位數是0,那反轉輸不輸出0呢?競賽出現這種情況可以問相關人員,這裡我們兩個方法都了解一下,上面的方法是輸出0的,下面給出不輸出0的

第乙個方法

#include

intmain()

第二個方法

#include

intmain()

上面的方法雖然少用乙個變數,但實際上很少使用,因為其適用範圍很窄。

許多演算法競賽是採用黑盒測試(不看你採用什麼演算法),所以有個簡便的方法,第三個方法

#include

intmain()

討論乙個很典型的數學題= =

已知雞和兔總數為n,總腿數為m。輸入n和m,依次輸出雞和兔的數量。

先來計算一下,設雞a只,兔b只。那麼可得出a + b = n,2a + 4b = m。

進而得出a = (4n-m)/2,b=n-a(不要=(m-2n)/2,這樣計算複雜了,這不是數學作業)

可能很多人知道氣泡排序法和選擇排序法以及很多的排序方法,但這裡才第一天,我們先從簡單的說起吧。

首先,因為我們只有三個數,我們可以一一枚舉出來。abc,acb,bac,bca,cab,cba,六種情況。那我們可以六個if判斷來解決這個問題。

不過,若1三個數相同,比如1 1 1輸出,得出的是六行1 1 1。所以我們改進成else if,else if可以讓條件與if的條件無交叉的情況。

從大到小排序就把上述**中所有<=變成》=。

還有種更簡便的方法,我們先從三個數中挑出最大值,並換到第乙個位置;再從剩下兩個數中挑出最大值,放在第二位…這是選擇排序的思想。

#include

intmain()

if(a >= c)

//前兩個if判斷,等同於三個數中的最大值放到第一位

if(b >= c)

//剩下兩個數大的放前,小的放後

printf

("%d %d %d\n"

,a, b, c)

;//輸出

return0;

}

第乙個if和第二個if的格式都是正確的,這裡我兩個都寫下,可能會不太美觀,只是想提醒可以這樣寫。

c中double型別輸出要用%lf,輸出要用%f,vc++ 6.0和dev都相容了c和c++,所以有時候不會出現錯誤。我們這裡每次儲存的程式都是.cpp格式,可以把現在的學習當作c++語言中與c語言相容的部分

接下來的部分,大家自己碼碼**,自己**,我這裡就只給出截圖了

這裡的int和double並不能儲存任意的整數和浮點數。我們來實驗一下

對於c和d中的字元,我查閱了一些資料1.#inf00表示的是正無窮,inf是infinity(正無窮的縮寫),超出了double浮點數的最大範圍,一般是除0得出的結果;but,-1.#ind00不是負無窮,ind是indeterminate的縮寫,意思是不確定,一般來說,它們來自於任何未定義結果(非法)的浮點數運算。windows說的是ind,linux上說的就是nan(not a number)。-1.#ind00 對應符號位 1 , 階碼全1 , 尾數非0。可以說,出現1.#ind00就檢查是否發生了非法的運算;出現1.#inf00就表示計算結果溢位,檢查是否除了0。

輸入格式的實驗:

#include

intmain()

在同一行輸入12和2,以空格分隔,觀察結果

在不同兩行輸入12和2,觀察結果

在12與2之間插入大量空格,tab(水平製表符)和空行,觀察結果

把12和2換成12和字元s,重複上述步驟。

重拾JSP JSP入門

1 當 input 的 type 為 hidden 時,稱其為隱藏域,隱藏域在頁面中對於使用者是不可見的,在表單中插入隱藏域的目的在於收集或傳送資訊,以利於被處理表單的程式所使用。瀏覽者單擊傳送按鈕傳送表單的時候,隱藏域的資訊也被一起傳送到伺服器。2 jsp 在處理提交過來的表單資訊前,使用 req...

重拾 堅持 沉澱

大約有將近1年左右沒有更新部落格,期間有考慮過每個月或每週花些時間來分享最近所學 所得 但總由於一些原因導致時間被占用 久而久之就漸漸淡忘了寫部落格這件事。現在回想起來感覺還是有一些後悔。其實,時間擠擠總是有的,哪怕每週一小時,乙個月下來,也能梳理出幾篇部落格。再或許是工作一定年限後,那股勁淡去了,...

重拾青藏夢

事隔一年許,才有機會靜下心來,慢慢回憶當年的青藏騎行,並記錄成文。遲遲不願動筆,一是文筆不好,有些回憶是值得留藏心裡,細細品嚐,怕寫出來會變了味,不知所謂 二是工作繁忙,著實沒那份閒情。但我又想寫點什麼,有些成長,不應該只是在記憶中埋藏。青藏線上,充滿了太多的不確定因素,嚴寒,冰雹,缺氧,高原狼,無...