Špecifické zoradenie – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Špecifické zoradenie – C / C++ – Fórum – Programujte.comŠpecifické zoradenie – C / C++ – Fórum – Programujte.com

 

27. 7. 2013   #1
-
0
-

Sorry že sa tu znovu pýtam, ale potreboval by som opäť poradiť :o)) Potreboval by som vytvoriť algoritmus, ktorý špecificky zoradí hodnoty (výšky chlapcov). Výstup by mal obsahovať zoradené hodnoty - príklad:

700 -- 500 -- 200

400 -- 300 -- 100

V každom rade musia byť zoradení podľa veľkosti (najväčší stojí naľavo). V každej za sebou stojacej dvojici musí byť predný chlapec taky vysoký ako ten za tím, alebo menší.

Vstup obsahuje celé číslo N. Chlapcov je 2N. Nasleduje 2N riadkov - každý riadok obsahuje číslo - výšku chlapca a nanometroch. (čísla sú medzi 1 a 2 000 000 000). Výstup obsahuje 2 N riadkov - výšky chlapcov - zľava doprava. Výstup k predtým uvedenom príklade:

700

500

200

400

300

100

Zatiaľ som vytvoriť toto a neviem ako ďalej :(

#include <iostream>
#include <stdlib.h>
using namespace std;
	
int porovnaj (const void * a, const void * b)
{
	return ( *(int*)a - *(int*)b );
}

long int vstup;

int main(void)
{
	cin >> vstup;
	vstup *=2;
	int* chlapci = new int[vstup];
	for (int i=0; i<vstup; i++)
	{
		cin >> chlapci[i];
	}
	qsort (chlapci, vstup, sizeof(int), porovnaj);
	//výstup má byť tu - poradie chlapcov
	system("PAUSE");
	return 0;
}

Ďakujem : ))

Nahlásit jako SPAM
IP: 178.143.3.–
KIIV
~ Moderátor
+43
God of flame
27. 7. 2013   #2
-
0
-

seradis normalne a pak postupne rozhazujes do rad...  nejvyssi pujde do druhy, druhy nejvyssi do prvni a tak dale

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
27. 7. 2013   #3
-
0
-

#2 KIIV
aa trochu zrozumitelnejšie ? :D v tom zdrojovom kóde čo som sem dal som ich roztriedil...ale potom čo ?

Nahlásit jako SPAM
IP: 178.143.3.–
KIIV
~ Moderátor
+43
God of flame
27. 7. 2013   #4
-
0
-

proste vypises prvni, treti, paty, ....  jako druhou radu

a  druhy, ctvrty, sesty, ....    jako prvni radu...

- jen sem nejak nepochopil proc by mel byt napriklad vypis:

700 -- 500 -- 200

400 -- 300 -- 100

to co popisuju by melo:

700 -- 400 -- 200

500 -- 300 -- 100

ale i to by melo splnit ze jsou od nejvetsiho po nejmensi, a v kazde za sebou stojici dvojici je vetsi v zadu

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
27. 7. 2013   #5
-
0
-

#4 KIIV
Toto je zadanie (pôvodné od autora):

Vstup

V prvom riadku vstupu je celé číslo N (1≤N≤5 000). Chlapcov v telocvični je 2N. Nasleduje 2N riadkov, každý z nich obsahuje jedno celé číslo (medzi 1 a 2 000 000 000) – výšku jedného z chlapcov v nanometroch. Tieto čísla nemusia byť navzájom rôzne, t.j. niektorí chlapci môžu byť rovnako vysokí.

Výstup

Tvoj program by mal vypísať 2N riadkov. Prvých N bude obsahovať výšky chlapcov v zadnom rade, druhých N výšky chlapcov v prednom rade. Oba rady vypisujte zľava doprava, t.j. začínajúc najvyšším.

Ak je viac možných riešení, vypíšte ľubovoľné z nich.

Príklad

vstup
3 100 200 300 700 400 500
výstup
700 500 200 400 300 100

Vysvetlenie

Rozmiestnenie v telocvični pre vyššie uvedený príklad výstupu vyzerá nasledovne:

700 500 200 400 300 100

Nahlásit jako SPAM
IP: 178.143.3.–
KIIV
~ Moderátor
+43
God of flame
27. 7. 2013   #6
-
0
-

jak psal autor.. moznosti je vice...   klidne to muze byt i   700 500 400 a 300 200 100 ... hlavni je, aby to bylo serazeny v ramci rad a vepredu byl mensi clovek nez za nim

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
27. 7. 2013   #7
-
0
-

#6 KIIV
no áno, ale môže tam byť aj 1000 detí, tak potom ako ? testuje to počítač,nie človek potom...

Nahlásit jako SPAM
IP: 178.143.3.–
KIIV
~ Moderátor
+43
God of flame
27. 7. 2013   #8
-
0
-

pokud ma testy dobre, tak projde jakykoliv spravny reseni, kde bude rada serazena od nejvyssiho po nejmensiho a za sebou bude mit mensi vetsiho... vazby krizem zadny receny nejsou

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
27. 7. 2013   #9
-
0
-

#8 KIIV
Nemohol by si mi napísať zdrojový kód toho triedenia a výpisu ?

int porovnaj (const void * a, const void * b)
{
	return ( *(int*)a - *(int*)b );
}

ako mám toto zmeniť aby sa to radilo zostupne ? a ten výpis ?

Nahlásit jako SPAM
IP: 178.143.3.–
vitamin+8
Grafoman
27. 7. 2013   #10
-
0
-

#9 ArcaneBeam13
Ked uz to pises v c++ tak sa pouzi radsej std::sort. Je to rychlejsie a lepsie sa pouziva, napr:

#include <iostream>
#include <algorithm>
#include <functional>
#include <vector>

int main(){
	int data[8] = {1, 3, 7, 2, 8, 10, 2, 13};	//jednoduhsie by bolo pouzit std::vector/std::array
	std::sort(data, data + 8);
	for(int i : data)std::cout << i << '\n';
	
	std::cout << "-----------------------------------------\n";
	
	std::sort(data, data + 8, std::greater<int>());
	//alebo:
	std::sort(data, data + 8, [](int a, int b){return a > b;});
	for(int i : data)std::cout << i << '\n';
	
	return 0;
}
Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
eyefinity
~ Anonymní uživatel
1 příspěvek
27. 7. 2013   #11
-
0
-

ArcaneBeam13 si riešiteľ Programátorskej liahne? V pravidlách sa uvádza, že:

"Všetky programy, ktoré pošleš na otestovanie, musia byť tvoje vlastné."

Nahlásit jako SPAM
IP: 78.98.5.–
28. 7. 2013   #12
-
0
-

#11 eyefinity
Za 1. - nie som, úlohy mám od pedagóga. Za 2. - nič, čo napíšeš, nie je tvoje vlastné, pretože sa to musíš od niekaď naučiť --> tak prečo nevyužiť ľudí, ktorí sú vysoko inteligentní a opýtať sa ich. Už len návod na to triedenie som si hľadal sám, a napísal ho tiež niekto iný, takže nebude moje. Som zvedavý, ako by si urobil niečo čo nedokážeš urobiť bez publikácie alebo človeka. Za 3. - už keď sa tu robíš dôležitým, píš príspevky prihlásený. -.-""

Nahlásit jako SPAM
IP: 178.143.3.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 46 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý