Jak zapisać, żeby pętla wykonywała sie tyle razy ile robi obliczeń?

0

Chodzi o drugi for. Bo gdy np. chce by wyświetliło sie 7 wyników to powinny zostać obliczone naprzemiennie 3 razy c i 3 razy d a potem na koniec jeszcze c ale juz bez d. Chodzi o moment który obecnie jest zapisany jako i<e+1.Czy jest to możliwe w takim sposobie wykonania zadania czy nalezy do tego podejsc inaczej? Jeśli źle wytłumaczyłam (nie umiem tego lepiej wyjaśnić) moge wysłać treść zadania. Proszę o wyrozumiałość, bo niedawno zaczęłam sie tego uczyc i nie idzie mi najlepiej.

#include <iostream>

using namespace std;

long long k, n, a, b, c, d, e;

int main()
{ cin>>n>>k;
e=k/2;
if(k%2==0)
for(int i=0; i<e; i++)
{
a=1+i;

   b=n-i;

    cout<<a<<" "<<b<<" ";
}
 else
    for(int i=0; i<e+1; i++)
 { c=1+i;

   d=n-i;

    cout<<c<<" "<<d<<" ";
    }


return 0;

}

0

Jak masz taka mozliwosc to zawsze dawaj tresc zadania i inne rzeczy ktore moga pomoc odpowiadajacemu

0

Bo gdy np. chce by wyświetliło sie 7 wyników

Zdecydowanie wrzuć te zadanie, albowiem z Twojego posta nijak nie mogę skapować czemu liczba wyników miała by być nieparzysta, skoro w pętli liczby obliczane są dwie i dwie są wypisywane.

0

Nie jest to możliwe, wnętrze drugiej pętli wykona się e razy i tyle tez razy wydrukowane będą pary: c i d.

0

Jeżeli chodzi o to aby zmieniało się co trzecią iterację to można zrobić tak:

else
{
    bool do_c = false; // Mimo że tu jest false, za pierwszym razem będzie liczone c
    for (int i = 0; i < e + 1; i++)
    {
        if (i % 3 == 0) // To dlatego że 0 % 3 == 0
            do_c = !do_c; // Odwrócenie flagi

        if(do_c)
        {
            c = 1 + i;
            cout << c << " ";
        }
        else
        {
            d = n - i;
            cout << d << " ";
        }
    }
}
0

screenshot-20180124122951.png

0

Nie zbyt rozumiem czemu chciałaś obliczyć 3 razy coś potem 3 razy co innego, bardziej chodzi o coś takiego:

#include <iostream>

using namespace std;

int main()
{
    int n;
    int k;
    cin >> n;
    cin >> k;

    int add_value = 1; // Pierwsza wartość dla dodawania to 1
    int sub_value = n; // Dla odejmowania - n

    bool add = true; // Zaczynamy od dodawania
    for(int count = 0; count < k; count++) // Wypisywane k liczb
    {
        if(add)
        {
            cout << add_value++ << " "; // Wypisz i dodaj 1 do obecnej wartości
        }
        else
        {
            cout << sub_value-- << " "; // Wypisz i odejmij 1 od obecnej wartości
        }

        add = !add; // Odwrócenie flagi
    }
    return 0;
}

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