Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

allman

Rozwiązany: Język C potęgowanie pętlą for

Polecane posty

Napisałem


float i,x,y,wynik;
printf("Program do obliczania x^y\n");
printf("podaj x, y\n");
scanf("%f, %f",&x,&y);
wynik=1;
for(i=0;i<y;i++) wynik=wynik*x;
printf("%f\n",wynik);

Ale program zwraca zawsze wartość x, myślałem że jak wpiszę przed pętlą wynik=1, to potem za każdym powtórzeniem pętli będzie się aktualizował czyli 1*x potem x*x potem x*x*x ... Ale widocznie źle to rozumiem

Link do komentarza
Udostępnij na innych stronach

1. Jesteś pewien, że y ma być typu float? Sprawdź co się stanie, jak y będzie równe powiedzmy 0.5.

2. Co z potęgami ujemnymi?

2. Jeśli chodzi o scanf, to jesteś pewien, że poprawnie wpisałeś dane wejściowe?

W przypadku Twojego kodu dane wejściowe powinny mieć format:

abc.def, ghi.jkl

Gdzie abc.def oraz ghi.jkl są odpowiednimi floatami i to powinno działać.

@Stefan scanf sobie z czymś takim poradzi (ba poradzi sobie z dużo bardziej zawiłymi konstrukcjami).

Link do komentarza
Udostępnij na innych stronach

1. Nie jestem pewien, mam praktycznie zerową wiedzę, nie potrafię zdecydować, w obecnej wersji i tak nie ma znaczenia czy pod y wpiszę 5, czy 0,753243, zawsze wyskoczy x

2. Nad ujemnymi pomyślę, gdy otrzymam poprawną wartość dla wyrażenia dwa do trzeciej,bo jak na razie to jest ciągle 2 (zakładam że wynik też nie jest float :P)

3. idę spać przemyślę to jutro :P

Link do komentarza
Udostępnij na innych stronach

@Stefan scanf sobie z czymś takim poradzi (ba poradzi sobie z dużo bardziej zawiłymi konstrukcjami).

Scanf pominie spację, ale nie przecinek. Skoro zmienne pobierane były oddzielone przecinkiem to również trzeba go użyć w zapisie.

Żeby nie mieszać wystarczy poprawić to na:


scanf("%f,%f",&x,&y); Przykładowe dane: 2,5

lub


scanf("%f %f",&x,&y);Przykładowe dane: 2 5

bądź na


scanf("%f",&x);
scanf("%f",&y);

Tak czy inaczej przy obecnym kodzie, jeśli dane wrzucisz oddzielone przecinkiem i o ile są to liczby naturalne, to wynik wyjdzie poprawny.

xqallanx: Nie wprowadzałbym używania strumieni do zwykłego C. Nie mieszajmy mu.

Link do komentarza
Udostępnij na innych stronach

Gość
Temat jest zablokowany i nie można w nim pisać.


  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...