C Rekurencja + błędy kompilacji.

0

Witam

Mam do rozwiązania problem:
user image

Wydaje mi się że dobrze go rozwiązałem ale występuje błąd kompilacji - zaznaczona linika.
Może wie ktoś co jest nie tak?

user image

Listing programu:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int fun(int *W[],int y,int i);
main()
{
      int W[4]={2,1,4,2};
int odp;      

odp=fun(W,1,3);
system("pause");      
}

int fun(int *W[],int y,int i)
{
    int odp;
    if(i>0)
    { odp=(W[i]/(pow(y,i)) + fun(*W[],y,i-1));}
    else
    {   odp=W[0];
}
return odp;
}
 
1
  1. Wyrzuć Deva teraz i nigdy do niego nie wracaj...
    http://revo.pl/index.php/blog/detailed/70
    http://kazafin.wordpress.com/2010/02/21/dlaczego-nie-warto-uzywac-dev-c/
    https://www.google.pl/search?q=dlaczego+nie+używać+dev+cpp
    itd, itd.

  2. Do fun przekazujesz wskaźnik to tablicy, powineneś przekazywać wskaźnik albo tablicę.

int fun(int W[],int y,int i)
  1. *W[] - dość dziwny zapis...

To powinno podświetlone błędy kompilacji wyeliminować.

PS. Wyrzuć Deva.

0

Tu masz błąd:

fun(*W[],y,i-1)

Możliwe że powinno być tak:

fun(W,y,i-1)
1

Bo źle przekazujesz tablicę. Kompilator o tym pisze wyraźnie (CodeBlocks).
Tablicę możesz przekazywać do funkcji jako void funkcja(int* tablica) lub void funkcja(int tablica[])

Poza tym, błędnie wywołujesz funkcję: fun(*W[],y,i-1)). Powinno być fun(W,y,i-1)).

Btw. Wywal Deva.

0

Wielkie dzięki, już wszystko działa.
Okazało się że w innych podobnych zadaniach popełniałem ten sam błąd, program działał ale byłem błędy kompilacji z którymi sobie nie radziłem.

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1