Skocz do zawartości

Zarchiwizowany

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

michalmaniak

[c++/c]Wykonywanie pętli do while

Polecane posty

Piszę ćwiczenie polegające na wyświetleniu liczby x, x,2, x3 w kolejności z wykonaniem pętli do while.

Dodatkowo ma być w przedziale liczb p i k. Niestety program wyświetla polecenie tylko raz. co jest nie tak?

Ps: Dopiero uczę się programowania dlatego mam problemy


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float x, p, k;
float p1=1;
printf("Podaj p= ");
scanf("%f",&p);

printf("Podaj k= ");
scanf("%f",&k);

printf("Podaj x= ");
scanf("%f",&x);


if( x >= p && x <= k )
{
do
{
p=p+p;
x=pow(x,p1);
printf("Liczba x wynosi %f \n",x);

} while( x==pow(x,3));
}

system("PAUSE");
return 0;




}


Link do komentarza
Udostępnij na innych stronach

Zastanów się najpierw jak ten program powinien działać, bo z tego kodu wnioskuję, że nie przemyślałeś tego zbyt dobrze.

Napisz (np. w jako listę kroków) co chcesz robić. Lepiej myśl o tym problemie tak, jakbyś chciał wypisać n kolejnych potęg, a nie konkretnie 3.

Dodatkowo do-while średnio się tutaj nadaje, lepiej by się sprawdził zwykły while.

Link do komentarza
Udostępnij na innych stronach

do-while też jest ok przy tak sztywnych założeniach.

                         p=p+p;

Po co to? Czy gdziekolwiek z tego korzystasz?

                         x=pow(x,p1);

Czy gdziekolwiek zmieniasz wartość p1? Czy gdy p1 jest różne od 1 to w ogóle ma sens (w ten sposób stracisz wartość x)?

                         } while( x==pow(x,3));

Czy warunek wewnątrz while będzie kiedykowliek spełniony dla liczb różnych od -1, 0 oraz 1? Ten zapis oznacza tyle co: x==x*x*x, a to mało kiedy jest prawdą.

Link do komentarza
Udostępnij na innych stronach



  • Kto przegląda   0 użytkowników

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