求程式執行過程,為什麼會等於15,C語言的

2023-01-10 23:10:32 字數 3995 閱讀 6806

1樓:匿名使用者

遞迴程式,實在很不容易說清楚,只能意會,到了一定階段自然就明白了。

最初是呼叫f(aa,5),返回了f(aa,4)+a[4],又返回了f(aa,3)+a[3]+a[4],又返回了f(aa,2)+a[2]+a[3]+a[4],如此最後為f(aa,0)+a[0]+a[1]+a[2]+a[3]+a[4]。f(aa,0)為0,所以結果就是a[0]一直加到a[4],為15。

遞迴就像做一件事之前,還要做另一件事,做另一件事之前,又要做另外另外的一件事,所以推下來總是最初的那件事最後才能完成,在它之前要完成其他事。

2樓:匿名使用者

/*f(aa,5)=f(aa,4)+a[4]=f(aa,3)+a[3]+a[4]

=f(aa,2)+a[2] + a[3] + a[4]=f(aa,1)+a[1]+a[2]+a[3] +a[4]=f(aa,0)+a[0] +a[1]+a[2]+a[3] +a[4]

=0 + 1 + 2 + 3 + 4 + 5= 15

*/#include

int f(int a,int n)

int main()

,s;s=f(aa,5);

printf("%d\n",s);}

3樓:a雄

f 這算是一個遞迴函式,函式的作用就是求陣列的每項之和,其中的兩個引數:一個是陣列的引用,還有一個是陣列的長度,每呼叫函式一次,傳入的引數都減少一,然後加上a[n],

呼叫的過程中分別取到了a[5-1] a[4-1] a[3-1] a[2-1] a[1-1] ,最後當n=1的時候f函式返回0

所以最終的結果是把這個陣列的每一個子項相加之和。

遞迴這樣的函式相對來說比較難理解,簡單的呢,自己把它的呼叫過程都寫出來然後,看一看就比較清楚了,一樓列出來的呼叫過程蠻清楚的,可以參考一下。 有什麼不明白的可以qq我 840364481 歡迎相互學習 ^_^

4樓:匿名使用者

函式遞迴 5+4+3+2+1+0=15

這個程式相當於一個分段函式,對你便於理解

已知a[5]=和下列函式f(x)

0, x<1

f(x)={

f(x-1)+a[x-1] x>=1 x=5時 f(x)=15

對於函式遞迴問題,千萬別亂,一步一步去代,慢慢有規律後就可以很快解答出來,沒有看上去那麼難的下面也是一個我解答的遞迴問題,鞏固一下

c語言中7&&15等於多少

5樓:匿名使用者

&&是邏輯運算子

在c語言中,非0表示邏輯真

所以,7&&15的結果是,邏輯真,用1表示.

因此,結果是1.

6樓:問很很多多

1。7不等於0,短路。

7樓:匿名使用者

貌似邏輯判斷吧,等於1

c語言中一**為什麼等於123445678788。00000

8樓:匿名使用者

123456.789e5是科學計數法的表示,e5表示10的5次方;123456.789e5就相當於是123456.

789乘以10^5,然後有根據浮點數取值範圍進行取捨,如果發生溢位就會產生莫名的結果,即使有時候看似相似

希望對你有所幫助

9樓:匿名使用者

e5 意思是 10的5次方

c語言編寫程式後,為什麼執行時自動關閉?

10樓:哎呀沃去

在前面變數定義部分增加:char buffer[20];

scanf改成:scanf("%s",buffer); ch=buffer[0];

11樓:鳳舞天族

你執行的時候按ctrl+f5就不會關掉了,最後一行顯示press any key to continue!

1/1+1/2+1/3+...1/n<=15.0怎麼做的。 輸出n等於多少,用c語言做,希望大家幫

12樓:

//#include "stdafx.h"//vc++6.0加上這一行.

#include "stdio.h"

int main(void)

13樓:飄遙舞者

求和,當和小於等於15時輸出n

14樓:匿名使用者

我是c++,不好意思

關於c語言,為什麼我一執行程式,老是說檔案不存在?

15樓:我不醒了

我有出現了重情況,最後我發現我的是因為我把return 0 ;寫成了return=0;所以編譯沒過,你可以看一下是不是這個問題

16樓:匿名使用者

書上印的程式很多都錯誤的,要自己除錯。

編譯沒有過,沒有生成可執行程式,所以檔案不存在。

do you want to build it? 是否要建立(編譯+連結)程式

17樓:匿名使用者

你的編譯都沒通過,沒有辦法生成可執行的程式,沒有生成可執行的程式,你執行肯定是不行的了。

你還是好好看看的程式吧,或是貼出來我們看看,

為什麼c語言程式能編譯但是執行不到 5

18樓:

錯誤原因:在執行過程中發生了異常,比如空指標,陣列越界,死迴圈無法跳出等

編譯:編譯的意思就通過了編譯器的詞法語法分析器的解析,編譯器可以解析你的所有的**,沒有語法語義上的錯誤,比如c語言 a[-1]這樣的可以編譯,因為語法滿足c語言的標準,但是明顯會報錯,即執行錯誤

執行:執行時對**的逐條執行過程,在執行過程中可能會出現錯誤,出現錯誤,則會導致程式崩潰等問題

19樓:匿名使用者

編譯只是檢查你的**有沒有語法錯誤,執行的話要實際的結果了,這兩個不一樣,可以私信,把你的**發過來看看

20樓:匿名使用者

原因:可能是某些細節寫錯。

比如:1.if (a==b)寫成了if (a=b)。2.呼叫函式時沒加上括號,比如asdf()寫成了asdf。

解決方法:仔細檢查,努力排錯。

備註:以後寫**時,要注意之前出錯過的細節,以免再錯。

求一個c程式的詳細執行過程,為什麼會得到如此結果

21樓:匿名使用者

for迴圈1到100

滿足i%10==3的i只有3,13,23....93滿足i/10==3 的只有30,31,32...39同時滿足的只有33,所以剩餘99個都不滿足,count為99

22樓:匿名使用者

。。。。。

你怎麼計算的一共100個數,除了商3餘3的數(這個數是33)滿足if條件。其他的99個數都是走的else count++這句話啊。所以count=99

23樓:藍色**

你是怎麼算出來90的,只有一種情況count++不成立,那就是i=33.其他情況都要++,100-1=99

24樓:匿名使用者

首先明白&&是與的關係,即是同時滿足條件i%10==3,i/10==3

1-100之間的數

滿足i%10==3的有 3,13, 23, 33, 43, 53, 63, 73,83, 93

滿足i/10==3的有 30

證明根本就沒有符合if語句的條件,所以1-100進迴圈就else count++; 最後的答案應該是100才對啊

25樓:昌珈藍歆

滿足(i%10==3&&i/10==3)的只有33,所以剩下的是99

為什麼我執行遊戲會現應用程式錯誤

應用程式錯誤,建議樓主採取以下措施,解決您的問題記憶體條壞了 更換記憶體條 雙記憶體不相容 使用同品牌的記憶體或只用一條記憶體散熱問題 加強機箱內部的散熱 驅動問題 重灌驅動。如果是新系統,要先安裝主機板驅動軟體損壞 重灌軟體 軟體有bug 打補丁或用最新的版本。軟體和系統不相容 給軟體打上補丁或者...

VB題 程式執行後,單擊窗體,輸出結果是?求過程

我感覺答案裡應該沒有空格,我按我的思路說了一下,希望對你有幫助option base 1 private sub form click dim arr 4,4 as integerfor i 1 to 4 arr i j i 1 2 jnext j next i 這一堆都是賦值語句,給一個二維陣列賦...

執行什麼程式會觸發windows的UAC

1全部大環境導致uac在實際使用過程中會遇到各種問題,不過我們依然可以通過一些方法讓uac對我們的干擾能夠降到最低。1.禁用uac 雖然強烈建議不這樣做,但如果你確實習慣不了uac,或者自己必須使用的軟體在啟用uac的情況下會遇到各種問題,那麼也可以考慮禁用uac。開啟 控制面板 依次進入 使用者賬...