2015-11-22 85 views
-9

有人可以解釋我這個功能的工作原理嗎?我無法理解它所說的k--這意味着什麼? 什麼時候我必須考慮最後一行?當兩個「if」子句是錯誤的?這個功能是如何工作的?

int h(int n, int k) 
{ 
    int i; 
    for(i=2;i<=n;i++) 
    { 
     if (g(i) && n%i==0) k--; 
     if (k==0) return i; 
    } 
    return 0; 
} 
+1

這不是一個可以回答的問題。請提出一個確切的問題。 –

+0

這個問題會更適合問一個熟悉C的人。它不適合SO。 – skrrgwasme

回答

-1

k--;它了相同的是K = K-1

當g(i)和N%我== 0爲真,則該函數減1至k,

如果k == 0則該函數返回一世;但如果i> = n,則h返回0.

兩個「if」子句是獨立的。

沒有函數g我們不能再說了。

+0

'k - '與'k = k - 1'不一樣!有語義上的差異,例如左值不會因爲副作用而被強制(但結果是)。 – Olaf

+0

如果g(i)中的「i」是素數,則g給出1,否則給出0 – MLRH