C語言程式設計問題,請求大神幫我解釋兩個步驟運用了遞迴,但是兩個子函式我沒看懂,不知道為什麼這樣做

2021-04-02 12:48:09 字數 5793 閱讀 6301

1樓:匿名使用者

對於(1),也就是函式xh。

這個問題是在1到n的n個數中,取一些數出來,使得它們的和為m。

對於這個問題,有一些特殊情況:那就是a,b

a. 如果m=1,則只有一種情況,那就只用一種情況,只能取一個數,這個數就是1。

b. 如果不滿足a,且 n<=1 或者m<=0, 那麼將沒有解,也就是有0種情況。

c. 如果不滿足a和b,那麼又可以分成兩種情況(這是遞迴的關鍵之處),i.如果取最後一個數,且n就等於m,那就這一種情況也就是 t=1,若n=m,那麼就只有取m這個數一種情況。

在接下來的就分成兩種:i.不取最後一個數,則需要在前面n-1個數中取c個數,它們的和是m,也就是 zxh(n-1,m,c);ii.

要去最後一個數, 則 需要在前面n-1個數中取c-1個數,它們的和是m-n,也就是zxh(n-1,m-n,c-1)了。

需要好好仔細理解,祝你早點想透

什麼是c語言和c+語言

2樓:小夏在深圳

1、c語言。

c語言誕生得非常早,當時人們普遍還習慣用組合語言編寫軟體,並且沒有什麼統一,通用的作業系統,基本上軟體都是從0開始寫的。c語言的方針便是比彙編方便易用,一起不要損失彙編的表達能力。所以c語言可以看成是「高階的彙編」語言。

c語言的源**基本上可以非常容易地對應到彙編**,並且可以不需要什麼執行時環境的支撐。c的特點,簡單容易編譯,靈活貼近底層。所以一向到現在,一些需要直接和硬體打交道的軟體都還是用c語言寫的,比如(但不限於)linux kernel和一些嵌入式領域。

2、c++ 語言

c++早期是基於c的,c++早期的編譯方法是將c++的**編譯成c**然後再呼叫c的編譯器來生成機器碼。c++的方針是進步程式設計人員的生產率,哪怕代價是增加編譯器的複雜度。

擴充套件資料

1、c語言中,如果一個函式沒有指定返回值型別,預設為int型別,並返回一個隨機數,一般為0xcccccccc.

2、在c++中,如果函式沒有返回值則必須指定為void型,否則編譯不能通過。

3樓:文化廚子

c語言全稱:the c programming language,它是一門通用計算機程式語言,它是在bcpl語言上發展而來的,bcpl的作稱是basic combined programming language,因為c語言在它的基礎上開發出來的,所以很多c程式設計師喜歡將bcpl解釋成(before c progamming language)。c語言應用廣泛。

它的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。因此c語言在針對硬體程式設計以及系統底層開發中得到大量的應用,現在大部使用者使用的windows系統以及linux系統都是用c語言開發出來的。

c++語言全稱:the c++ programming language,它是是在c語言的基礎上開發的一種通用程式語言,應用廣泛。c++支援多種程式設計正規化 :

物件導向程式設計、泛型程式設計和過程化程式設計。最新正式標準c++14於2023年8月18日公佈。 其程式設計領域眾廣,常用於系統開發,引擎開發等應用領域,是至今為止最受廣大受用的最強大程式語言之一,支援類:

類、封裝、過載等!c++主要用於大型的應用程式開發,比如遊戲開發。

4樓:

c語言是一門通用的計算機程式設計語言,它是從b語言(bcpl)上改進發展而來的。c語言最初是為了開發unix作業系統而設計的,這使得它可以以一種簡易的方式編譯,處理低階硬體儲存器,只產生比較少的彙編機器碼並且可以在任意系統下執行,無需環境支援。正因為以上特點,c語言在底層硬體程式設計和系統核心(底層)開發中得到大量廣泛的應用。

unix系統80%都是使用c語言編寫的。windows系統的核心大部分也是c語言開發的。

c+語言是一個與c/c++毫無關係的早期程式語言,現已廢棄,內容不詳。它留下的資料極少,以至於早已沒有人記得它了。

c++是對於c語言的物件導向擴充,在c語言的基礎上開發的一種通用計算機程式設計語言。應用同樣廣泛。c語言是純程序導向的,c++語言在此基礎上增加了物件導向程式設計,泛型程式設計以及過程化程式設計,支援類,封裝,運算子(函式)過載等等。

c++對c語言進行了大量的改進,使得c++既具有c語言的低階硬體操作特性,也具有現代物件導向的新型程式設計方法,使得它成為至今應用最廣泛,最強大的程式語言之一。c++主要用於開發大型工程專案,使用者介面開發。比如說開發各種遊戲等。

5樓:落霞秋無聲

簡單地說,c++就是c加、加。也就是說,它是c語言的超集。作為一個超集意味著當一個編寫良好的ansi standard c 語言程式被提交到一個c++語言編譯程式時,它可以被正確地編譯。

通常,*.c檔案被認為是c編譯模式,而*.cpp被認為是 c++編譯模式。

如果你是一個有經驗的c程式設計師,那麼不要被c++的特性嚇倒,因為c++語言產生初衷就是為了讓c程式設計師逐漸地過渡到物件導向的程式設計方法。如果你只是一個初級的c程式設計師,或者你沒有多少程式設計經驗,那就需要多下功夫了。

c++特性

首先,c++區別於c的一些特性是與物件導向毫無關係的。(或者說,這些特性只是為了讓c語言使用更方便。) 下面我們就由這些特性開始學習。

新的註釋風格

c++定義了一種新的註釋風格,即兩條斜線(//)表示一行註釋。以前,c程式必須使用/*----*/來表示註釋。現在你有了更好的選擇。享受這種特性吧!

6樓:手機使用者

c主要是順序,分支,迴圈這三種結構,以及過程,函式呼叫。

c++是物件導向的語言,主要在於建立類,類的繼承和派生,建立物件上。

7樓:手機使用者

一個是程序導向的,一個是物件導向的。

c語言程式設計中,sinx怎麼表示?

8樓:我是果瘋

在寫c語言的程式時,在開頭加上一個標頭檔案math.h即可。

即可直接使用sin(x),特別注意x應該為弧度制,如果不是弧度制需要轉化為弧度制。

新增標頭檔案方法:#include。

9樓:匿名使用者

首先,要用到數學函式,需要包含標頭檔案math.h

其次,如果x不是弧度,需要轉換為弧度,如果x本身是弧度,則可以寫為:sin(x)

如果x不是弧度,可以寫為:sin(60*3.1415926/180)

10樓:匿名使用者

#include

#include

int main()

11樓:匿名使用者

寫成sin(x),這是庫函式,標頭檔案是math.h

12樓:匿名使用者

sin(x)就可以吧

13樓:匿名使用者

標頭檔案里加入math.h,就有sin函式了。

什麼c語言程式設計軟體適合初學者

14樓:匿名使用者

vc6.0 ,舊了。

codeblack,還可以。

cfree破解版,貌似不更新了。

vs2010。有點大。

linux下c語言程式設計(適應平臺有點困難),建議選哪個都行。都能練習c語言。

15樓:匿名使用者

對於咱們這樣的初學者用tc或者dev就夠用了,否則用高階的不僅不能增添能力,相反還會因為複雜的操作流程把本身簡單的問題弄複雜了,反而自造麻煩了。說白了 c編輯器只不過就是個工具罷了 把c知識學會了才是最關鍵的 就好比開車 只要把駕駛技術掌握了 拿到駕駛證了 至於是開寶馬 還是賓士 那就看個人喜好了

16樓:無法無天

devc++簡單實用,安裝完成的時候選擇中文就可以了

或者網上的c-free

龐大一點的就是vs系列,幾個g,一般裝vs2010以上

17樓:元元旦旦

如果你是初學,我還是建議你用turbo c,因為它就是一個針對c的程式設計環境.當然vc++6.0,2008之類的更通用,但是不適合初學.

因為它們本身的使用就需要你學習,而且不是特指c的.也就是說,你寫了一個正確的c檔案,但是不一定能在vc++上正確執行,因為你還要包含這樣那樣的標頭檔案.而這些在turbo c裡是內建的.

你可以選擇trubo c 3.0試試.

18樓:熙楊丶

我覺得適合初學者練習c語言是gx developer 體驗會很好

19樓:棲鳳婷

visual studio啊。2005,2008,2012版本都行

c語言程式設計怎樣入門

20樓:匿名使用者

一、工欲善其事,必先利其器

這裡介紹幾個學習c語言必備的裝置和書籍:

a)開發環境

例如turbo c 2.0,這個曾經佔據了dos時代開發程式的大半個江山。但是現在windows時代,用turbo c有感覺不方面,編輯程式起來很吃力,並且拖放,更沒有函式變數自動感應功能,查詢參考資料也不方便。

建議使用visual c++,這個平臺雖然體積大,但是一旦安裝好了,用起來很方便。

b)一本學習教程

現在c語言教材多如牛毛,推薦大家使用《c語言程式設計》第二版。此書很適合初學者,並且內容也很精到。

c)利用輔助學習軟體

畢竟現在是windows時代了,學習軟體多如牛毛,這裡向大家推薦一個「整合學習環境(c語言)」,裡邊的知識點總結和例程講解都非常好,有好幾千題的題庫測試環境,包括一個windows下的trubo c,初學者甚至不用裝其它的編譯器,就可以練習程式設計了。還有一個「c語言學習系統」軟體,不過感覺只是一個題庫系統,如果你覺得題做的不夠,不妨也可以試試。

二、葵花寶典

學習計算機語言最好的方法是什麼?答曰:讀程式。

沒錯,讀程式是學習c語言入門最快,也是最好的方法。我們大家都應該有個體驗——在最初學習windows系統操作或microsoft words如果操作的過程中,剛開始總是正兒八經地買來教材,結果讀來讀去卻雲裡霧裡,而當我們將教材丟在一邊,拿起滑鼠反覆地試,幾個小時就搞定。包括學習j#,c#等其他語言,在今天的windows時代,也不再提倡抱著書本逐行啃,而是學習它們的例程。

當然,對於沒有學過任何計算機語言的初學者,多少要先閱讀教程,認真體會所有概念,然後不放過這一章中提到的所有例程,仔細研讀,直到每一行都理解了,再找幾個程式設計題目,最好是和例程類似的或一樣的,自己試圖寫出這段已經讀懂的程式。如果寫不出來,回過頭來再繼續研究例程,想想自己為什麼寫不出來,然後再去寫這段程式,反反覆覆,直到你手到擒來為止。

三、登峰造極

寫程式的最高境界其實就是掌握各種解決問題的手段(資料結構)和解決問題的方法(演算法)。

是不是寫出底層程式就是程式設計高手呢?非也,寫底層程式,無非是掌握了硬體的結構,況且硬體和硬體還不一樣,要給一個晶片寫驅動程式,無非就是掌握這塊晶片的各種暫存器及其組合,然後寫值讀值,僅此而已。這不過是熟悉一些i/o函式罷了。

那麼怎樣才算精通程式設計呢?怎樣才能精通程式設計呢?舉個例子:

你面前有10個人,找出一個叫「張三」的人,你該怎麼辦?第一種方法:直接對這10個人問:

「誰叫張三」。第2種方法:你挨個去問「你是不是張三?

」,直到問到的這個人就是張三。第三種方法:你去問一個人「你認不認識張三,指給我看」。

不要小看這個問題,你說當然會選第一種方法,那麼恭喜你答對了,因為這個方法最快,效率最高,但是在程式設計中找到解決問題的最優方法和你用的手段卻是考驗一個程式設計師程式設計水平的重要標誌,而且是不容易達到的。剛才這個問題類似於資料結構和演算法中的:map資料結構,窮舉查詢和折半查詢。

所以掌握好資料結構和一些常用演算法,是登峰造極的必然之路。

c語言程式設計的問題 坐等大神,C語言程式設計的問題 坐等大神

include include void fun int num int main 先用迴圈找出每個數,for i 1 i n,i 然後用char strstr char str1,char str2 匹配字串是否含1,注意整型和字串的 轉化 include include 測量時間需要用到的標頭檔...

c語言程式設計問題,c語言程式設計問題?

1 輸入有範圍,兩個變數輸入都需要驗證,方法變數處置範圍以外,迴圈判斷輸入。2 天數迴圈計數,日期0 6週期自增。用變數累加計數結果。下面是演示 include int main int i,j,a 7,n 366,cnt 0 while a 0 a 6 printf 請輸入a的值 0 6 scan...

c語言程式設計求大神解答,C語言程式設計題,求助大神!

我給你看看我的程式吧 有不懂的再問我,可以私聊 include include int main for int i 1 i n i float sj jbgz i jj i 0.05 float sfgz jbgz i jj i bx i sj printf 編號 d bh i printf 姓名...