Nie wiem gdzie jest błąd.

0

Wiem że każdy ma mnie dość, i to jest mój ostatni post tutaj, ale tym razem na prawde nawet w podręcznikiem do C++ nie jestem w stanie wskazać błędu. Pewnie wy jesteście

PLS HELP ME

=====================================================================

Asia dostała na urodziny magiczną piłeczkę. Piłeczka ta, spadając z pewnej wysokości odbija się na wysokość dwa razy większą. Asia zrzuciła piłeczkę z balkonu z pewnej wysokości . Zastanawia się teraz, po ilu odbiciach piłeczka znajdzie się na wysokości .

Wejście
W pierwszej linii wejścia znajduje się jedna liczba całkowita (), oznaczająca liczbę zestawów danych. Dla każdego zestawu danych w nowym wierszu znajdują się dwie liczby całkowite i ().

Wyjście
Dla każdego zestawu danych w kolejnych wierszach powinna znaleźć się jedna liczba całkowita równa liczbie odbić, po których piłeczka znajdzie się na wysokości .

Przykład
Dla danych wejściowych:

2
3 4
2 6
poprawną odpowiedzią jest:

1
2

======================================================================

typ kodem.

int main()
{
    int x,w,z;
    cin>>z;

    for(int k = 1;k<=z;k++)
    {
        cin >> x >> w;
        {
            if(x<w)
            {
                for(int i = 0;x>=w;i++)
                {
                    if(x*2>=w)
                    {cout << i+1;
                        break;
                    }
                    int x = x * 2;
                }
            }
            if(x>=w)
            {
                cout<< "0";
            }
        }
    }
return 0;
}
0
                for(int i = 0;x>=w;i++)
                {
                    if(x*2>=w)
                    {cout << i+1;
                        break;
                    }
                    int x = x * 2;
                }

Masz odwrócony warunek i deklarujesz nową zmienną x zamiast zdublować starą. Użyj debuggera żeby prześledzić wartości zmiennych w programie

0
 for(int i = 0;x>=w;i++)

i to liczba odtworzeń tej pętli, co według mnie może też oznaczać ilość odpić piłeczki. Będzie trwała dotąd aż x nie będzie większe lub równe w. Z tym warunkiem też mam problem, nie wiem jak mógłbym go poprawnie napisać, i to było najlepsze na co wpadłem.

0

weźmy dane weściowe - 2 3
x to 2
w to 3
Czy warunek x >= w jest spełniony?

2
KomnatoMan napisał(a):

Wiem że każdy ma mnie dość, i to jest mój ostatni post tutaj, ale tym razem na prawde nawet w podręcznikiem do C++ nie jestem w stanie wskazać błędu. Pewnie wy jesteście

            for(int i = 0;x>=w;i++)
            {
                if(x*2>=w)
                {cout << i+1;
                    break;
                }
                int x = x * 2;
            }
        }

Nie mielibyśmy Cię dość, gdybyś przyjmował choć 1% z tego, co się pisze.

Uczył Cię kolega: pętla for to ( instrukcja inicjacyjna ; warunek przed każdym cyklem; czynnośc na koniec cyklu)

  • ani ostatnie nie musi być zmienna++, może być x = x*2
  • jest skrajnie niebezpiecznie jak nie widać "rytmu życia", tj warunek jest na innych zmiennych niż czynności początkowa i końcowa. Początkujący MUSI się na tym pokaleczyć, a i u zawodowca by było w kiepskim stylu.
  • break na podstawie innych zmiennych powoduje, ze za Chiny Ludowe nie wiadomo, co chciał programista

Pętla jest tak skrajnie dziwna, że nie wiem co MIAŁA wyrażać.
Ja zobaczyłem mniej więcej taką, ale nie mam najmniejszego pojęcia co chciałeś. Wyobrażenie na podst. "kilku" lat klepania

for(x=1; x< .... ; x*=2)

0

Coś czego nie mogę ogarnąć, to to że x i w muszą przechowywać dwie wartości na raz, a to nie możliwe, ale jakby tak miało nie być, to musiałbym stworzyć 1000000000 zmiennych.

1

Masz dwie zmienne do przchowywania dwóch wartości, w czym problem?

0

tu i tu i tutaj. moze tylko ciagle trolluje

0

i na końcu pętli jest związane z tym że liczba i jest jednocześnie liczbą odtworzeń pętli KomnatoMan 8 minut temu> #####

AnyKtokolwiek napisał(a):

for(x=1; x< .... ; x*=2)

po uwzględnieniu uwagi staje się.

int i=0;
for(x=1; x< .... ; x*=2)
{
 ...
 i++;
 ...
}

Zwróć uwagę, ze 'w' jest jakby ważniejsze dla logiki pętli
Przy czym należy unikać niepotrzebnych breaków, ale jak musi być, to na tak wydzielonym i będzie najmniej złe.

1
KomnatoMan napisał(a):

i to liczba odtworzeń tej pętli, co według mnie może też oznaczać ilość odpić piłeczki. Będzie trwała dotąd aż x nie będzie większe lub równe w. Z

Tłumaczenie zmiennych by było zbędne, gdyby miały znaczące nazwy
i -> cykle (odbicia)
w -> wysokość
x -> najstarsi górale nie wiedzą
itd

3

Tak, tylko ci tłumaczyłem, co według mnie one znaczą KomnatoMan 3 minuty temu

dość śmieszne jest, że sam masz wątpliwości co do własnych zmiennych

Właśnie prawidłowe nazywanie ma zapewnić ich brak.
To również walka z własną psychologią: na początku traktujemy zmienną jako Jabłko, ale potem już trochę jako Gruszkę, by w końcu algorytmu była już Śliwką ...
Nazwa jabłko przed tym broni, będzie tłukło po oczach jakbyś chciał używać jako gruszki

0

Dobrze, lecz wracając do pytania, czemu to co ja napisałem nie spełnia zadania, choć w połowie, czyli to pierwszych zmiennych.

1

Dobra, chciałem ogłosić upadłość, GG.

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