c語言問題,這個程式看不明白,誰能解釋一下謝謝

2021-03-05 09:18:12 字數 4294 閱讀 3244

1樓:聽聽—那冷雨

就一個遞迴呼叫呀。

就是返回的是c的值 一直遞迴到最裡層 c = 10也就是age(0)返回值是10 然後是age(0)+2 返回12 就是age(1)的返回值以此類推

age 5

c = age 4 +2

c = age 3 +2

c = age 2 +2

c = age 1 +2

c= 10

然後再返回c的值 由下向上累加

c = 10

c = 12

c = 14

c = 16

c = 18

c = 20

2樓:匿名使用者

age(n) //定義了一個age()函式,用了遞迴的方法

int n; //定義了一個整形變數n

main()

3樓:

#include

int age(int n)

/*int n;*/

void main()

這個就是一直呼叫

age()函式知道n==1

前面呼叫了四次 就是4x2+10(n==1時c的值,就是18)f(n)=10+(n-1)*2

4樓:匿名使用者

這是一個遞迴程式,就是求10+2+2+2+...+=10+2(n-1)的值

例如,如果n=5,那麼結果c=age(4)+2=(age(3)+2)+2=(age(2)+2)+2+2=(age(1)+2)+2+2+2=(10+2)+2+2+2=10+4*2=18

c語言問題,下面這個例題看不懂,誰能解釋一下,謝謝

5樓:小魚

在main()前面加一個void,變成void main().

否則在visual studio 2005+的環境下編譯不能通過。

這個程式用i, j, k分別表示a,b,c對應的選擇,每個人都是從x到z的迴圈。

如果遇到i,j,k值相等的時候就繼續下一個迴圈,因為每個人對陣的對手不能相同。

if(i!='x'&&k!='x'&&k!='z')這句是根據已知條件進行的檢查,

要求a不能是對陣x,k不能對陣x和z,

如果所有的檢查都通過了,那麼就printf輸出這組解。

6樓:匿名使用者

你把ijk看做是abc,a可能對xyz,b,c同樣可能對手xyz,條件for(i='x';i<='z';i++) for(j='x';j<='z';j++) for(k='x';k<='z';k++)但他們的對對手不能一樣,所以有 if(i!=j)和 if(i!=k&&j!

=k),又因為有a說他不和x比,c說他不和x,z比的條件,所以有 if(i!='x'&&k!='x'&&k!

='z'),只要滿足以上條件就能得出結果

7樓:匿名使用者

c語言是一門很重要的基礎語言,如果想要學好就多看一些書。。。。

c語言for迴圈,一個例子看不懂,誰能幫忙解釋一下,謝謝。

8樓:匿名使用者

我覺得,書裡這種命名方式放到公司裡是要被批的體無完膚的。不過話說回來,咱還得硬著頭皮學不是。

其實最主要的是看懂每個變數表示什麼意思。

n是使用者輸入的數。然後迴圈n次。i依次等於[1,2,3,...,n]

這層迴圈還是比較好理解的。使用者輸入幾,就迴圈幾次其中 i 就表示第幾次迴圈了

然後是跟k和j相關的這一段內層迴圈:

k=1;

for(j=1;j<=i;j++)

k=k*j;

k初始值是1,然後內層迴圈 i 次,j表示內層迴圈到第幾次了。k依次等於上一次的k乘以j。

也就是說:

第1次內層迴圈執行完,k等於1。

第2次內層迴圈執行完,k等於1*2。

第3次內層迴圈之行完,k等於1*2*3。

執行i次。也就是k等於1*2*3*...*i。其實就是i!啦(i的階乘)。

重點:k等於i的階乘。

然後,sn+=k;就是sn表示i的階乘的累加。

最後,根據上面標黑的文字,應該能得出來結論了,這個程式是讓使用者輸入n,然後求1!+2!+3!+...+n!。

一道c語言程式填充題,問題如下,我看不懂為什麼這麼填,請詳細解釋一下,謝謝!

9樓:寂靜深闌斜

說下這段**思路。a、b兩個陣列,總有一個陣列元素最先被使用完,那麼之後存入c陣列的元素只能是另一個陣列的。i和j作為角標,就是用來表明a、b陣列各用了多少元素。

如果a、b陣列都沒用完,那麼就要判斷a、b誰出的元素小,小的存入c中(根據要求知c中元素由小到大排列)。

求解釋c語言這道題,看不懂程式,解釋一下過程!!謝謝

10樓:折翼鯉魚

你好你這個應該只有兩行輸出啊,

第一行 是 -1 6

第二行是 6

關於c語言的問題,為什麼我看不懂什麼意思,求大神給我詳細解釋一下while裡的迴圈,謝謝了!

11樓:匿名使用者

你可以象計算機一樣一句一句機械地執行你的程式,這就叫跟蹤:

int x=1,y=1; //x=1,y=1

while ( x<=9) //因條件成立執行迴圈體

y=1; //y=1

while(y<=x) //x=1,y=1,條件成立執行迴圈體

輸出:1*1=1

y++; //y=2

while(y<=x) //x=1,y=2,條件不成立結束迴圈

printf("\n"); //輸出換行,可見while(y<=x)迴圈是要輸出一行內容,而while(x<=9)可控制輸出幾行

x++; //x=2,y=2

while ( x<=9) //因條件成立執行迴圈體

y=1; //y=1

while(y<=x) //x=2,y=1,條件成立執行迴圈體

輸出:2*1=2

y++; //y=2

while(y<=x) //x=2,y=2,條件成立執行迴圈體

輸出:2*2=4

y++; //y=3

while(y<=x) //x=2,y=3,條件不成立結束迴圈

printf("\n"); //輸出換行

...經過上述跟蹤,得到了完整的兩行輸出:

1*1=1

2*1=2 2*2=4

可以預見的是後面的輸出:

3*1=3 3*2=6 3*3=9

...9*1=9 9*2=18 9*3=27 ... 9*9=81

是一個九九乘法表,程式中while語句要分析它的起始和結束條件,因為while(x<=9)迴圈的結束條件是x>9,因此我們注意一下x的初始條件,x=1;迴圈體中對x進行無條件的賦值計算的語句就一句:x++;那麼可得出:經過迴圈,每次迴圈x會分別等於1,2,3,4,...

,9;y值在while(x<=9)迴圈體內,每次都要重新置1,然後迴圈條件是y<=x,迴圈體中有y++,也就是y從1逐次變化到x,如果用for迴圈表示可能會更容易讀懂:

for ( x=1;x<=9;x++,printf("\n") )

for ( y=1;y<=x;y++ )

printf("%d*%d=%d\t",y,x,x*y);

12樓:匿名使用者

先說外面的while迴圈

while (x<=9)

控制x從1-9迴圈。

裡面的while迴圈

y=1;

while (y<=x)

y的值從1-x來迴圈,並計算y乘x的值

13樓:匿名使用者

你這個應該是列印99乘法表吧

你對應一下,很簡單的

裡面那個while,就是判斷x是否小於等於y,如果符合條件,列印x*y=值x*y

如果不符合條件,列印換行,y加上1在列印

14樓:東方偶爾白

只是個雙迴圈 不知道你那裡不懂

顯示卡對比 很不明白這個問題,顯示卡對比問題 線上等 急

6600的要好一些 6600屬於nvdia公司產品,效能不俗,屬於gforce系列 而9550和x800屬於ati公司的產品,網上總是宣傳ati的顯示卡多少電晶體,什麼高技術,可是驅動程式一直不完善,不能充分發揮硬體效能,即使是電晶體數相同情況下,ati的顯示卡都不如nvdia的,如果那天ati來個...

誰能幫我解釋一下這說明什麼。我看不明白。謝謝

應該是術後炎症引起的發炎 囊腫,嚴重的需要吃藥,甚至手術摘除囊腫!如果輕微的適當吃點 消炎藥可以 去問醫生被 很簡單的 誰能給我詳細解釋一下,看不懂 這是什麼情況 誰能給我解釋一下 謝謝 不明白你的意思,你既沒有介紹什麼情況,也沒有發個 過來看看,我們怎麼分析,怎麼可能解釋呢?老僧道機熟,默語心皆寂...

一直看不明白,這個書上面說的意思,求哪位大神能說的簡單明瞭一

以第一個例句為例 更簡單的句型為 名詞 形容詞 這個沒什麼好說的現在我想表達 兩人坐單車是很危險的 兩人坐單車 不是名詞,要變成名詞就是 兩人坐單車這件事 兩人坐單車 自転車 二人 乗 動詞原型後 自転車 二人 乗 兩人坐單車這件事 醫生寫的我看不懂,求大神幫我翻譯一下,謝謝。50 你好?處方藥方只...