K u p l a l a j i t t e l u liukuluvuilla

Tällaisella koodilla sain kuplalajittelun toimimaan kokonaisluvuilla, siis järjestää kolme lukua pienimmästä suurimpaan, mutta kuinka saan muutettua tämän toimimaan myös liukuluvuilla? Eli haluaisin käyttää desimaalilukuja.

Jos luku-muuttujan vaihtaa doubleksi, homma ei toimi.


#include
using namespace std;
int main()
{
int luku[3];
bool jarjestyksessa;
cout luku[nro];
   

do
    {
jarjestyksessa = false;
for(int nro = 0; nro < 3; nro )
          {
if(luku[nro] > luku[nro 1])
                  {
swap(luku[nro], luku[nro 1]);
                      jarjestyksessa = true;
}
}
}
   
    while(jarjestyksessa);
   
cout
2313
Äänestä

Muut lukivat myös

Vastaukset 2

Vanhimmat

Ei tuo toimi oikein millään tietotyypillä. Vertailet silmukassa lukuja seuraavan indeksin lukuun joka viimeisellä silmukan kierroksella osoittaa ulos varatusta tilasta.. toimii kuitenkin ok jos tiputat tuossa lajittelusilmukassa sitä maksimia yhdellä:
-> for (int nro = 0; nro < 2; nro ) cin >> luku[nro];

Samalla lailla toimii float double yms

Äänestä
  • hups tuli virhe itselläkin, pastesin väärän forrin.. oikea on siis tietysti siinä lajittelusilmukassa :/

    Äänestä

Kommentoi aloitusta


c++ -aloittelija kirjoitti:

Tällaisella koodilla sain kuplalajittelun toimimaan kokonaisluvuilla, siis järjestää kolme lukua pienimmästä suurimpaan, mutta kuinka saan muutettua tämän toimimaan myös liukuluvuilla? Eli haluaisin käyttää desimaalilukuja.

Jos luku-muuttujan vaihtaa doubleksi, homma ei toimi.


#include
using namespace std;
int main()
{
int luku[3];
bool jarjestyksessa;
cout luku[nro];
   

do
    {
jarjestyksessa = false;
for(int nro = 0; nro < 3; nro )
          {
if(luku[nro] > luku[nro 1])
                  {
swap(luku[nro], luku[nro 1]);
                      jarjestyksessa = true;
}
}
}
   
    while(jarjestyksessa);
   
cout

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu