Porządkowanie 5 liczb niemalejąco c++


(Shinigami42sama) #1

Witam znów. Tym razem mam problem z napisaniem programu w c++(wiem, że powinno być banalne, ale ja już dzisiaj naprawdę wysiadam intelektualnie) segregującym pięć liczb w sposób niemalejący. Pracuję w CodeBlocks.

#include 

using namespace std;


int main()

{

    int a,b,c,d,e,x,y,z,w;


    cin>>a>>b>>c>>d>>e;


    {do{ if (a>b)

     x=a; a=b; b=x;

     if (b>c)

        y=b; b=c; c=y;

     if (c>d)

        z=c; c=d; d=z;

     if (d>e)

        w=d; d=e; e=w;}

     while (a<=b<=c<=d<=e);


    cout<


        return 0;


}[/code]

Uruchamia się okno, ale nie chce wpisać wyników.

Od razu proszę, żeby przy udzielaniu mi rad traktować mnie jak kompletną ignorantkę w dziedzinie programowania (która z resztą zetknęła się z nim niedawno i wciąż je nie do końca łapie).


(Copycona) #2

1.

if (a>b)     x=a; a=b; b=x;[/code] Twoje wcięcia oszukują.

to tak naprawdę:
[code=php]    if (ab)        x=a;    a=b;    b=x;



Nie ma tutaj bloku kodu u Ciebie.



2. 

     while (a=b=c=d=e);[/code]



[quote]
warning: comparisons like 'X=Y=Z' do not have their mathematical meaning [-Wparentheses]
[/quote]


Ten warunek jest zły, zarówno składniowo, jak i logicznie.



Składniowo: zapewne chodziło o


[code=php]while ((a=b)  (b=c) ...



Logicznie: To jest warunek poprawności ciągu, a nie zakończenia pętli. Należałoby całość zanegować



 } while ( !( (a=b)  (b=c) ... [/code]
 czyli z prawa De Morgana


[code=php]} while ((ab) || (bc) ... 



3. Do wykonywania zamiany zmiennych (swap) nie potrzebujesz aż trzech zmiennych tymczasowych. Można za każdym razem operować na tej samej zmiennej.

(Shinigami42sama) #3

Dzięki:) Bardzo się przydało.