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
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
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
hups tuli virhe itselläkin, pastesin väärän forrin.. oikea on siis tietysti siinä lajittelusilmukassa :/