82 ROZDZIAŁ 11. FUNKCJE while (--n) { ++count; a = b; b = c; c = a + b; } return c; } int main(void) { unsigned n, result; printf("Ktory element ciagu Fibonacciego obliczyc? "); while (scanf("%d", &n)==1) { count = 0; result = fib_rec(n); printf("fib_ret(%3u) = %6u (wywolan: %5u)\n", n, result, count); count = 0; result = fib_it (n); printf("fib_it (%3u) = %6u (wywolan: %5u)\n", n, result, count); } return 0; } W tym przypadku funkcja rekurencyjna, choć łatwiejsza w napisaniu, jest bardzo nieefektywna. Deklarowanie funkcji Czasami możemy chcieć przed napisaniem funkcji poinformować kompilator, że dana funkcja istnieje. Niekiedy kompilator może zaprotestować, jeśli użyjemy funkcji przed określeniem, jaka to funkcja, na przykład: int a() { return b(0); } int b(int p) { if( p == 0 ) return 1; else return a(); } int main() { return b(1); }
... zobacz całą notatkę
Komentarze użytkowników (0)