2015-11-22 3 views
-9

может кто-нибудь объяснить мне, как эта функция работает? Я не могу понять прохождение, где говорится, что это значит, что это значит? и когда мне нужно рассмотреть последнюю строку? когда два предложения «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--; `s то же самое, что K = K-1

Когда г (я) и п% я == 0 верны, то функция вычитают 1 к,

если к == 0, то функция возвращает я; но если i> = n, то h возвращает 0.

Два предложения «если» независимы.

Без функции g мы не можем сказать ничего более.

+0

'k -' не то же самое, что 'k = k - 1'! Существуют семантические различия, например. lvalue не принуждается к побочному эффекту (но результат). – Olaf

+0

g дает 1, если «i» в g (i) является простым числом, иначе оно дает 0 – MLRH

Смежные вопросы