Mam 6 hodnot. Kazda obsahuje 3 alebo 4 nahodne cisla od 1 po 6. Da sa spravim aby mi ich zoradilo od najvyssieho po najmensie, ale hodnoty ktore bude vyssie ako 12 aby dalo ako posledne???
Fórum › C / C++
Zoradenie cisel od najvyssieho po najmensie
To Onsi: Můžeš sem dát zdroják? Nějak to z toho nechápu:)
sort
quicksort
buble sort
gnomesort
http://forum.builder.cz/read.php?123,1818742,1818829#msg-1818829
nebo google ! ! !
#include <iostream>
using namespace std;
int main()
{
*
*
*
*
*
srand(time(NULL));
int hrac1[3];
hrac1[0]=rand()%6 + 1;
hrac1[1]=rand()%6 + 1;
hrac1[2]=rand()%6 + 1;
int hrac2[3];
hrac2[0]=rand()%6 + 1;
hrac2[1]=rand()%6 + 1;
hrac2[2]=rand()%6 + 1;
int hrac3[3];
hrac3[0]=rand()%6 + 1;
hrac3[1]=rand()%6 + 1;
hrac3[2]=rand()%6 + 1;
*
*
*
*
*
int hrac1_spolu=hrac1[0]+hrac1[1]+hrac1[2];
int hrac2_spolu=hrac2[0]+hrac2[1]+hrac2[2];
int hrac3_spolu=hrac3[0]+hrac3[1]+hrac3[2];
A teraz by som chcel aby mi hodnoty hrac1_spolu, hrac2_spolu a hrac3_spolu zoradilo od najvatsieho cisla po najmensie
ale ak bude nejaka hodnota =>12 tak nech je automaticky povazovana za najmensiu
*
*
*
*
*
cin.get();
cin.get();
return 0;
}
Pokud ty hodnoty nemas v poli, tak si je budes muset seradit nejak rucne , tzn.neco jako:
if ((hrac1_spolu > hrac2_spolu)&&(hrac1_spolu > hrac3_spolu)&&(hrac1_spolu < 12)) { hrac jedna je nejevetsi tak s tim neco delej.}
// atd...
Jinak jen drobnost, nejlepsi by bylo, kdyz uz tedy pracujes s C++ pouzit treba vector, napsat si porovnavaci operator a potom to seradit. Nic sloziteho.
Dukaz misto slibu:
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
class CHracSpolu
{
public:
int _sum;
CHracSpolu(int a=0, int b=0, int c=0)
: _sum(a+b+c) {}
bool operator<(const CHracSpolu& other) const
{ if(_sum >= 12) return false;
if(_sum > other._sum) return true;
}
};
int main(int argc, char *argv[])
{
vector<CHracSpolu> v;
v.push_back(CHracSpolu(1,2,3));
v.push_back(CHracSpolu(12,0,0));
v.push_back(CHracSpolu(1,5,3));
v.push_back(CHracSpolu(1,5,5));
sort(v.begin(), v.end());
for(vector<CHracSpolu>::const_iterator i=v.begin(); i != v.end(); ++i)
cout << i->_sum << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
-------------------------
Vystup:
11
9
6
12
Pokračujte stisknutím libovolné klávesy...
PaLaDiN píše:#
# To Jura_:#
##
#mas tam drobnu chybku, on chcel ze ak je <=12 tak automaticky najmensie, ty si uviedol >= 12
Ani ne, puvodni dotaz tazatel byl, aby cisla byla serazena SESTUPNE a pokud je cislo vetsi nebo rovno 12, tak ma byt POVAZOVANA za minimum. Ja pretezoval operator<, protot to vraci false, kdybych pretizil >, tak by to melo vracet true.
Krome toho je tam kontrolni vystup, ktery to splnuje.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Zoradenie cisel — založil Navi
I8086 - zoradenie čísel — založil Peter
Zoradenie hodnôt čísel — založil otazka
Meno najvyššieho žiaka — založil zenmr
Zoradenie Nodes — založil Trebor
Moderátoři diskuze