[warning] converting to int from float


(Ssupelka) #1

Witam!

Mam problem napisałam funkcję która szuka n-tego wyrazu ciągu oto kod:

int ntywyraz(int n){

    float a0 =1.00, a1=1.00, an;

   // an=(a0*(n-1)) + 3*a0*(n-2);

    an=2.5;

    return an;

    }

za komentowałam wzór wychodzą jakieś śmieci, a za an podstawiłam 2.5 by sprawdzić gdzie mam błąd. funkcja w main wygląda tak:

printf("podaj ktory wyraz ciagu mam obliczyc:\t");

    scanf("%f", & n);

    nty=ntywyraz(n);

    printf("\n n-ty wyraz ciagu to:\t %f", nty);

zmienna n jest typu int, nty jest typu float. kompilator wyświetla 2.0000... i w dodatku informuję mnie o takim błędzie:

in function int ntywyraz(int):

[warning] converting to int from float

nie wiem gdzie robię błąd, proszę o pomoc i wyrozumiałość, jestem tylko kobietą :stuck_out_tongue_winking_eye:


(Sawyer47) #2

To nie błąd, tylko ostrzeżenie. Zmienną an w funkcji ntywyraz jest typu float (wartość 2.5), a funkcja zwraca int – tracisz informację.


(Ssupelka) #3

dzięki, głupi błąd.. jesteś wielki :smiley: