
Programiranje u C++-u - pitanja i odgovori
- poruka: 7.285
- |
- čitano: 1.703.718
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore

Zar ne možeš dinamički alocirati spremište za stog pa ga tako smjestiti na heap?

Pozdrav ljudi! Prije par dana sam počeo nabadati sa Visual studiom i c++. Moj problemčić je sljedeći.
Imam jedan text box u kojeg unosim brojke. Ja želim taj broj kad kliknem na gumb prepisati na label.
Kod mi je ovakav:
private: System::Void but_pretvori_Click(System::Object^ sender, System::EventArgs^ e) {
int broj;
broj=Convert::ToInt32(txt_broj);
System::String^ j;
j = System::Convert::ToString(broj);
lbl_pretvoreno -> Text = j;
}
Kada pokrenem, sve prođe bez greške dok ne upišem broj i kliknem na gumb. Tada dobijem ovo
An unhandled exception of type 'System.InvalidCastException' occurred in mscorlib.dll
Additional information: Unable to cast object of type 'System.Windows.Forms.TextBox' to type 'System.IConvertible'.
Šta krivo radim??
Jel zna netko neku knjigu gdje su dobro obijesnjena binarna stabla, rekurzije i takve stvari, inace mislim za natjecanje iz programiranja za 2.srednje. Naso sam takvu knjigu u algoritmu no u pythonu je sve pisano, a meni treba C++ . Hvala!
Jel zna netko neku knjigu gdje su dobro obijesnjena binarna stabla, rekurzije i takve stvari, inace mislim za natjecanje iz programiranja za 2.srednje. Naso sam takvu knjigu u algoritmu no u pythonu je sve pisano, a meni treba C++ . Hvala!
Pogledaj ovo knjigu:
Specijalizirana je za natjecanja, i pisao ju je bivsi informaticki olimpijac.
Pozdrav. Na faksu sam dobio zadatak koji ne znam riješiti. Da li netko zna riješenje?
Stvorite polje od n tekstova. Pronađite tekst s najviše riječi i kopirajte ga u string T. U stringu T zamijenite svako slovo prve riječi sa znakom “&“. U funkciji sad pronađite sumu ASCII kodova promjenjenog stringa T te u funkciji neq pretvorite dobivenu sumu ASCII kodova u sustav s bazom19. Stvorite jednodimenzionalno dinamičko polje N u koje čete upisati brojeve znakova svake riječi stringa T čija je duljina veća od 2 znaka. Ispišite polje tekstova, promjenjeni string T, dobiveni ekvivalent u sustavu s bazom 19 i dinamičko polje N.
Ono na čemu sam zapeo je ispis jednodimenzionalnog dinamičkog polja u kojem su upisani brojevi znakova svake riječi stringa T čija je duljina veća od 2 znaka.Meni program ispisuje ukupan broj znakova svakog stringa.
Ja sam napravio da mi ispisuje ukupan broj znakova svih upisanih stringova a to nije točno.
#include "stdafx.h"//ukljucene header fajla #include <iostream>//ukljucenje header fajla #include <string.h>//uljucenje header fajla #define redak 100 #define max 100 #define baza 19 using namespace std;//koristenje imenskog prostora std objekta int sad(char suma[])//zaglavlje funkcije sad tipa int sa jednim argumentom {//otvaranje bloka naredbi int rezultat=0;//deklariranje i inicijalizacije varijable na nulu for(int i=0; i<strlen(suma); i++)//prebrojavanje svakog slova string suma if(suma[i]>=97 && suma[i]<=122)//ako se slovo nalazi u ovom intervalu ascii kodova rezultat+=suma[i];//onda ga prebroji varijabli rezultat return rezultat;//vrati reultat preko povratnog tipa }//zatvaranje bloka naredbi void neq(int suma)//zaglavlje funkcije {//otvaranje bloka naredbi if(suma>baza-1)//ako je suma veca od baze -1 onda neq(suma/baza);//onda napravi rekurziju funkcije , pritom sa sumu podjelis sa bazom if(suma%baza>9)//ako je ostatak pri djeljenju veci od 9 cout<<char(suma%baza+55);//onda ispisi slovo else cout<<suma%baza;//ispis ostatak }//zatvaranje bloka void main()//zaglavalje funkcije main tipa void {//otvaranje bloka naredbi funkcije main int n;//deklariranje varijable n char N[redak][max];//deklariarnje 1d polja za unos stringova int brojrazmaka=0;//deklariranje varijable brojrazmaka i inicijalizacija na nulu char T[redak];//deklariranje varijeble tipa char int sumaascii;//deklariranje varijable sumaascii cout<<"Upisite broj rijeci koji zelite unjeti ";//ispis zahtjeva za korisnike cin>>n;//upis vrijednosti u variablu n cin.ignore();//ignoriranje unosa for(int i=0; i<n; i++)//zaglavlje for petlje za upis {//otvaranje bloka naredbi for petlje cout<<"Upisite "<<i+1<<". rijec: "; cin.getline(N[i], max); }//zatvaranje bloka naredbi for(int i=0; i<n; i++) //for petlja {//otvaranje bloka naredbi vanjske for petlje int razmak=0;//deklaracija i inicijalizacija na nulu for(int j=0; j<strlen(N[i]); j++) if(N[i][j]==' ' || j==0)//ako smo naisli na razmak ili ako je i==0(prva rijec) razmak++;//onda razmak uvecaj za 1 if(brojrazmaka<razmak)//ako vrijedi uvjet {//otvaranje bloka naredbi funkcije if brojrazmaka=razmak;//onda brojrazmaka postavi na novu vrijednost strcpy(T, N[i]);//kopiranje u string }//zatvaranje bloka naredbi funkcije if }//zatvaranje vanjske petlje for(int i=0;T[i]!=' ';i++) { T[i]='&'; } sumaascii=sad(T);//slanje vrijednosti u funkciju kdo i pri zavrsetku funckje spreamanje vrijedsnoti u sumaascii cout<<endl<<"Ekvivalent sume u sustavu sa bazom "<<baza<<" je: ";//ispis ekvivalenta neq(sumaascii);//slanje vrijednosti u f-ju i ispisivanje unutar te funckije cout<<endl;//novi red int *H=new int[n];//deklariranje i inicijalizacija dinamickog polja tipa int for(int i=0; i<n; i++) *(H+i)=strlen(N[i]);//pridruzivanje vrijednosti dinamickom polju cout<<endl;// novi red for(int i=0; i<n; i++)//for petlja za ispis vrijednosti dinamickog polja if( strlen(N[i])>2) cout<<i+1<<". Rijec ima "<<*(H+i)<<" znakova."<<endl;//ispis dinamickog polje cout<<endl;//novi red delete []H;//dealokacija dinamickog polja H=0;//preusmjeravanje pokazivaca na nulu cout<<"U stringu se nalazi: "<<T<<endl<<endl;//ispis string for(int i=0; i<n; i++)//for petlja za ispiis cout<<i+1<<". upisana rijec je: "<<N[i]<<endl;//ispis cout<<endl;//novi red }//zatvaranje bloka naredbi funkcije main
Trebam pomoć u vezi rekurzije dva zadatka i jedan sa povezanim listama za koji nisam siguran.
1. slika
-9. zad (gornji), znam kako doc do 20 40 80 (valjda) ali ne kuzim kako se još ispise obrnuto
2.slika
-ako moze malo detaljnije objasnjenje :)
3.slika
-kaže da je C točan, ali meni se ipak čini da je B, prve dvije linije unutar IF-a mi ne valjaju nekako. što je točno?
Hvala.
Moze mi neko objasnit kako poredati tri broja pomocu petlji od najveceg do najmanjeg? Znaci bez ikakvih polja i vektora, samo pomocu petlji.
Moze mi neko objasnit kako poredati tri broja pomocu petlji od najveceg do najmanjeg? Znaci bez ikakvih polja i vektora, samo pomocu petlji.
To što si napisao nema smisla. Petlje su konstrukt koji služi za automatizirano procesiranje kojekakvih nizova (polja, vektori, liste...). Dakle primijeniš neki od algoritama za sortiranje na nekakav niz brojeva.
Možeš na neki način emulirati polje koristeći hrpu pojedinačnih varijabli, ali na što će to sličiti?
#include <stdio.h>
#define zamijeni(x, y) {int temp = x; x = y; y = temp;}
int main()
{
int a = 5, b = 2, c = 3, d = 4, e = 1;
printf("%d %d %d %d %d\n", a, b, c , d, e);
for (int n = 0; n < 5; n++)
{
if (a > b)
zamijeni(a, b);
if (b > c)
zamijeni(b, c);
if (c > d)
zamijeni(c, d);
if (d > e)
zamijeni(d, e);
}
printf("%d %d %d %d %d\n", a, b, c, d, e);
return 0;
}
Na prvi pogled ne izgleda strašno, pogotovo zato što sam srezao kod sa makroom, ali što ako budeš morao sortirati 100 brojeva? Hoćeš li napraviti 100 varijabli i sto puta staviti unutar petlje: "if (nesto > nesto) ??
Umjesto da automatiziraš cijelu stvar sa poljem i petljom:
#include <stdio.h>
#define zamijeni(x, y) {int temp = x; x = y; y = temp;}
int main()
{
int polje[5] = {5, 2, 3, 4, 1};
for (int n = 0; n < 5; n++)
printf("%d ", polje[n]);
for (int n = 0; n < 5; n++)
{
for (int i = 0; i < 4; i++)
{
if (polje[i] > polje[i + 1])
zamijeni(polje[i], polje[i + 1])
}
}
printf("\n");
for (int n = 0; n < 5; n++)
printf("%d ", polje[n]);
printf("\n");
return 0;
}
Polja i petlje ti idu zajedno kao lonac i poklopac. U svega par izmjena možeš gornji kod modificirati da ide kroz polje bilo koje veličine.
Zato jer mi je to za vjezbu u skoli, a nismo radili polja.
Posluzit ce ovaj tvoj prvi kod, ali cu ga samo malo modificirat, da je bez definea.
Trebam pomoć u vezi rekurzije dva zadatka i jedan sa povezanim listama za koji nisam siguran.
1. slika
-9. zad (gornji), znam kako doc do 20 40 80 (valjda) ali ne kuzim kako se još ispise obrnuto
2.slika
-ako moze malo detaljnije objasnjenje :)
3.slika
-kaže da je C točan, ali meni se ipak čini da je B, prve dvije linije unutar IF-a mi ne valjaju nekako. što je točno?
Hvala.
1. Najlakse ti je upisat program u neki IDE i proci kroz kod step-by-step. Potrebno je samo razumijevanje rekurzije.
Zapravo postoji i jednostavniji razlog zasto je b) jedini moguci odgovor: za svaki poziv u kojemu se n ispise, ispisat ce se tocno dva puta, jer imas dva 'cout << n'. Jedino je stvar u kojem poretku, no b) je jedini u kojemu su svi brojevi ispisani 2 put.
2. Tvoje rjesenje bi dalo za rezultat 5, jer samo kopiras prethodnu vrijednost dok ne dodjes do 5. Isto je kao i da nisi upisao tu liniju jer i za sve ostale vracas rek1(n-1). I opet se svodi na razumijevanje rekurzije i najbolje bi naucio prolazeci kroz kod debuggerom. Ako je broj djeljiv s 5, onda je za njega trazeni rezultat umnozak njega samog i umnoska brojeva djeljivih s 5 manjeg od njega. Prakticki po definiciji mora bit tako.
3. Meni se ne cini ni c da je tocan - tekuci = zadnji->slijedeci, a onda vec u prvom prolasku testiramo jel tekuci!=zadnji->slijedeci. Ne vidim kako bi ikad usli u while petlju. U B) bi ispisao jednom i onda slijedeci put je tekuci=zadnji->slijedecei i opet je kraj.
D) rjesenje si odsjekao i ne vidi se, ukoliko je uvjet: while (tekuci->slijedeci!=zadnji), onda je D) tocno.
Pozdrav ljudi! Prije par dana sam počeo nabadati sa Visual studiom i c++. Moj problemčić je sljedeći.
Imam jedan text box u kojeg unosim brojke. Ja želim taj broj kad kliknem na gumb prepisati na label.
Kod mi je ovakav:
private: System::Void but_pretvori_Click(System::Object^ sender, System::EventArgs^ e) {
int broj;
broj=Convert::ToInt32(txt_broj);
System::String^ j;
j = System::Convert::ToString(broj);
lbl_pretvoreno -> Text = j;
}
Kada pokrenem, sve prođe bez greške dok ne upišem broj i kliknem na gumb. Tada dobijem ovo
An unhandled exception of type 'System.InvalidCastException' occurred in mscorlib.dll
Additional information: Unable to cast object of type 'System.Windows.Forms.TextBox' to type 'System.IConvertible'.
Šta krivo radim??
Nisi dao koji je tip od txt_broj, no moj guess je da je TextBox kontrola, pa bi trebao koristit txt_broj->text u pozivu Convert::ToInt32.
Zato jer mi je to za vjezbu u skoli, a nismo radili polja.
Obrađujete sortiranje a da se još polja niste ni dotakli? Kako da ne...
Obrađujete sortiranje a da se još polja niste ni dotakli? Kako da ne...
A tko zna, mozda im je stvarno profesor dao, tipa tri broja i sortiraj ih...
1. Najlakse ti je upisat program u neki IDE i proci kroz kod step-by-step. Potrebno je samo razumijevanje rekurzije.
Zapravo postoji i jednostavniji razlog zasto je b) jedini moguci odgovor: za svaki poziv u kojemu se n ispise, ispisat ce se tocno dva puta, jer imas dva 'cout << n'. Jedino je stvar u kojem poretku, no b) je jedini u kojemu su svi brojevi ispisani 2 put.
2. Tvoje rjesenje bi dalo za rezultat 5, jer samo kopiras prethodnu vrijednost dok ne dodjes do 5. Isto je kao i da nisi upisao tu liniju jer i za sve ostale vracas rek1(n-1). I opet se svodi na razumijevanje rekurzije i najbolje bi naucio prolazeci kroz kod debuggerom. Ako je broj djeljiv s 5, onda je za njega trazeni rezultat umnozak njega samog i umnoska brojeva djeljivih s 5 manjeg od njega. Prakticki po definiciji mora bit tako.
3. Meni se ne cini ni c da je tocan - tekuci = zadnji->slijedeci, a onda vec u prvom prolasku testiramo jel tekuci!=zadnji->slijedeci. Ne vidim kako bi ikad usli u while petlju. U B) bi ispisao jednom i onda slijedeci put je tekuci=zadnji->slijedecei i opet je kraj.
D) rjesenje si odsjekao i ne vidi se, ukoliko je uvjet: while (tekuci->slijedeci!=zadnji), onda je D) tocno.
1.Napravio sam to, ali šta dobijem s time? Dobio sam u konzoli rjesenje kao sta mi pise i na onoj slici tako da mi nema bas pomoci tu.
2.Izgleda da jos uvijek ne kuzim rekurziju kako treba tako da cu malo prouciti jos..
3.evo slika d rjesenja dole..ne kuzim sta im znaci ovaj b?! cini mi se da je tocan ako ga dobro razumijem ovaj D
1.Napravio sam to, ali šta dobijem s time? Dobio sam u konzoli rjesenje kao sta mi pise i na onoj slici tako da mi nema bas pomoci tu.
Nauči koristiti debugger. Ovo sam ti već nekoliko puta ponovio, ali čini se da na jedno uho uđe a na drugo izađe.
Ako si to već ne možeš ovako sam po sebi vizualizirati u glavi, onda postavi breakpointe i varijable koje ćeš pratiti, i idi korak po korak kroz kod. Naporno je pisati i objašnjavati u detalje tok programa ovdje na forumu, najbolje je da ti to iz prve ruke vidiš.
1.Napravio sam to, ali šta dobijem s time? Dobio sam u konzoli rjesenje kao sta mi pise i na onoj slici tako da mi nema bas pomoci tu.
Nauči koristiti debugger. Ovo sam ti već nekoliko puta ponovio, ali čini se da na jedno uho uđe a na drugo izađe.
Ako si to već ne možeš ovako sam po sebi vizualizirati u glavi, onda postavi breakpointe i varijable koje ćeš pratiti, i idi korak po korak kroz kod. Naporno je pisati i objašnjavati u detalje tok programa ovdje na forumu, najbolje je da ti to iz prve ruke vidiš.
Probavao sam to nešto ali nisam uspio naci u CodeBlocksu..To bi kao nekako trebalo ispisivati sve sta se izvodi? Nije to ono kao samo izlaz sto pise u konzoli?
Imam zadatak naći najduži string od n upisanih stringova. I taj dio sam riješio. Sad mi program treba ispisati koliko svaka rijec ima znakova u tom najduzem stringu pomocu 1d dinamičkog polja uvjet za ispis je da rijec ima vise od dva znaka. Rezultat bi trebao izgledati ovako:
danas je lijep dan
5
5
3
Zna li tko kako bi to trebalo riješiti?
Probavao sam to nešto ali nisam uspio naci u CodeBlocksu..To bi kao nekako trebalo ispisivati sve sta se izvodi? Nije to ono kao samo izlaz sto pise u konzoli?
http://stackoverflow.com/questions/12589415/using-codeblocks-for-step-by-step-execution-of-my-code
http://wiki.codeblocks.org/index.php?title=Debugging_with_Code::Blocks
Probaj i Google naucit koristiti. :P
1.Napravio sam to, ali šta dobijem s time? Dobio sam u konzoli rjesenje kao sta mi pise i na onoj slici tako da mi nema bas pomoci tu.
2.Izgleda da jos uvijek ne kuzim rekurziju kako treba tako da cu malo prouciti jos..
3.evo slika d rjesenja dole..ne kuzim sta im znaci ovaj b?! cini mi se da je tocan ako ga dobro razumijem ovaj D
Postavimo pitanje zašto ovaj kod ispisuje brojeve i obrnutim redosljedom, a onaj ispod njega ne.
void f1(int n)
{
if (n > 100) return;
cout << " " << n;
f1(2 * n);
cout << " " << n;
}
void f1(int n)
{
if (n > 100) return;
cout << " " << n;
return f1(2 * n);
cout << " " << n;
}
Uoči da je funkcija tipa void, a to znači da na kraju funkcije ne moramo staviti return da bi je prekinuli, kao u prvom slučaju gdje funkciju prekidamo na kraju isto kao i da smo na kraju stavili return.
Dakle, odgovor na pitanje zašto prva funkcija ispisuje obrnuti redosljed a druga ne leži u činjenici da kad pozovemo bilo koju funkciju iz trenutne funkcije kad pozvana funkcija bude prekinuta ona iz koje smo je pozvali nastavlja rad na mjestu gdje smo pozvali funkciju. U prvom slučaju to znači da kad prekinemo jednu funkciju na stogu, u funkciji iz koje smo je pozvali nastavlja se rad na mjestu pozvane funkcije i prelazi se u sljedeći red gdje je ispis. Kod drugog slučaja kad pozvanu funkciju prekinemo, u funkciji iz koje smo je pozvali nastavljamo rad na pozvanom mjestu, međutim tu imamo return, pa prekidamo trenutnu funkciju i uopće ne idemo u liniju ispod gdje je ispis.
A što se tiče liste, d je točno.
a možeš na prvu otkantati jer ako se ima išta ispisati kružna lista nema null pokazivača
b isto tako, jer ne testira null pokazivač, pa ako mu pošalješ praznu listu eto iznimke
c iz razloga gore navedenih niti ne ulazi u while petlju
d je točno
U rješenju d se uvodi varjabla b kao zastavica iz razloga da uopće uđemo u while petlju i počnemo ispis od prvog elementa, ta varijabla b nam treba samo taj jedan put, i nakon inkrementa nebitna nam je.
Naime, ako je tekući = zadnji, onda je tekuci->sljedeci = zadnji->sljedeci, pa nista od ulaska u while petju, ali oni se dosjetiše pa u while petlju ubaciše još jednu logičku relaciju sa logičkim operatorom OR, sa tim je prvi prolazak u while petlji riješen jer je true b == 1, i nakon inkrementa varijable b za kretanje while petlje bitna je samo logička relacija sa lijeve strane opertora OR, a ona je nakon prvog prolaska true dok ne ispišemo zadnji element.
Bez te varijable b kao zastavice se može uz logičku relaciju u while petlji while(tekuci->sljedeci != zadnij) ali onda nakon izlaska iz while petlje treba naknadno ispisati zadnji element.
Trebam pomoć. Ne znam kako deklarirati polje unutar klase, a da se može inicijalizirati unutar konstruktora.
Unose se podaci: oznaka autobusa, naziv, vlasnik_prijevoznik, godina proizvodnje, broj putnika koje može povest max. i na koliko je putovanja bio.
Sada je potrebno u polje upisati koliko je putnika vozio na svakom putovanju.
#include <iostream>
#include <string>
using namespace std;
class Autobus{
private:
string oznaka, naziv, vlasnik_prijevoznik;
int god_pro, br_put, putovanja;
public:
Autobus();
Autobus(string, string, string, int, int, int);
Autobus operator++();
int get_putovanja();
void put_po();
string get_oznaka(){return oznaka;}
string get_naziv(){return naziv;}
string get_vlasnikPrijevoznik(){return naziv;}
int get_godPro(){return god_pro;}
int get_brPut(){return br_put;}
};
Autobus::Autobus(){
}
Autobus::Autobus(string o, string n, string vp, int gp, int bp, int p)
:oznaka(o), naziv(n), vlasnik_prijevoznik(vp), god_pro(gp), br_put(bp), putovanja(p){}
Autobus Autobus::operator++()
{
cout<<oznaka;
return *this;
}
int Autobus::get_putovanja()
{
return putovanja;
}
class Vlasnik{
private:
string prijevoznik, mjesto;
public:
Vlasnik();
Vlasnik(string, string);
};
Vlasnik::Vlasnik()
{}
Vlasnik::Vlasnik(string p, string m)
:prijevoznik(p), mjesto(m) {}
int main()
{
//Podaci za autobus
string oznaka, naziv, vlasnik_prijevoznik;
int god_pro, br_put, putovanja;
int putnika;
//Podaci za vlasnika
string p, m;
Autobus autobusi[5];
Vlasnik vlasnici[3];
//Ucitavanje za vlasnike
for (int i = 0; i < 3; i++)
{
cin>>p>>m;
vlasnici[i] = Vlasnik(p, m);
}
//Ucitavanje za autobuse
for(int i = 0; i < 4; i++)
{
cin>>oznaka>>naziv>>vlasnik_prijevoznik>>god_pro>>br_put>>putovanja;
autobusi[i] = Autobus(oznaka, naziv, vlasnik_prijevoznik, god_pro, br_put, putovanja);
}
system("pause");
return 0;
}
/*
M Mercedes Cazmatrans 1981 60 43
M Mercedes Cazmatrans 1981 60 43
M Mercedes Cazmatrans 1981 60 43
M Mercedes Cazmatrans 1981 60 43
M Mercedes Cazmatrans 1981 60 43
*/
S obzirom da je broj putovanja varijabilan najbolje je to polje deklarirati kao vektor unutar klase.
vector<int> br_putnika;
Nakon toga proširiti konstruktor tako da inicijalizira taj vektor:
Autobus(string, string, string, int, int, int, vector<int>);
tj.
Autobus::Autobus(string o, string n, string vp, int gp, int bp, int p, vector<int> brputnika)
:oznaka(o), naziv(n), vlasnik_prijevoznik(vp), god_pro(gp), br_put(bp), putovanja(p), br_putnika(brputnika){}
i onda sve to učitati:
//Ucitavanje za autobuse
for(int i = 0; i < 4; i++)
{
vector<int> pomV;
int pom;
cin>>oznaka>>naziv>>vlasnik_prijevoznik>>god_pro>>br_put>>putovanja;
for(int j = 0; j < br_put; j++){
cout << "Unesite broj putnika za " << j+1 << ". putovanje: ";
cin >> pom;
pomV.push_back(pom);
}
autobusi[i] = Autobus(oznaka, naziv, vlasnik_prijevoznik, god_pro, br_put, putovanja, pomV);
Imam problem sa Bellman-Ford algoritmom. Ako je netko voljan pomoći, nek se javi na PP ili tu ako ima dobar primjer.
U jednom zadatku unose se koordinate tacaka i ja sam to uradio ovako..
for (int i = 0; i < n;++i)
cin>>a[i]>>b[i];
Kada sortiram brojeve u prvom nizu (tj. one sa x ose) a[i] u rastucem redosljedu ,kako da se i b[i] sortiraju prema a[i] ???
A za što ti služe strukture?
Ako ćeš ovako, onda samo pri sortiranju pomiči elemente u oba polja istovremeno. Tako će ti ostati "zajedno". Npr. ako zamjenjuješ položaj a[3] i a[4], onda istovremeno napravi isto i u polju 'b', odnosno zamijeni b[3] i b[4].
A ako napraviš strukturu koja sadrži vrijednost x i y osi koordinate, pa potom i polje te strukture, onda ti je sortiranje jednostavnije jer x i y parovi ostaju pravilno grupirani sami po sebi.
Pozdrav!
Nastojim nauciti sluziti se c++ na nekoj naprednijoj razini od one školske, pa sam otvorio neki sample u netbeansima i sad ga pokusavam kompajlirat ali ne ide...
evo console outputa:
"/D/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk QMAKE=/D/Qt/5.3/msvc2013_64/bin/qmake.exe SUBPROJECTS= .build-conf
make.exe[1]: Entering directory `/c/Users/me/Documents/NetBeansProjects/HelloQtWorld_1'
/D/Qt/5.3/msvc2013_64/bin/qmake.exe VPATH=. -spec win32-g++ -o qttmp-Debug.mk nbproject/qt-Debug.pro
mv -f qttmp-Debug.mk nbproject/qt-Debug.mk
"/D/MinGW/msys/1.0/bin/make.exe" -f nbproject/qt-Debug.mk dist/Debug/MinGW-Windows/HelloQtWorld_1.exe
make.exe[2]: Entering directory `/c/Users/me/Documents/NetBeansProjects/HelloQtWorld_1'
D:/Qt/5.3/msvc2013_64/bin/uic.exe HelloForm.ui -o ui_HelloForm.h
make.exe[2]: *** [ui_HelloForm.h] Error 53
make.exe[2]: Leaving directory `/c/Users/me/Documents/NetBeansProjects/HelloQtWorld_1'
make.exe[1]: *** [.build-conf] Error 2
make.exe[1]: Leaving directory `/c/Users/me/Documents/NetBeansProjects/HelloQtWorld_1'
make.exe": *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 951ms)
nadam se da mi neko moze malo objelodanit situaciju.
P.S. Inace programiram u PHP-u (woohoo nema kompajliranja), a s c++ imam iskustva sa faksa (napredno programiranje mos mislit), kompajliranje u dev++ (press F5 to compile) i nest sam malo cackal po mingw sa strane.
Postoji neki specifican razlog zasto radis s Qt-om ili?
krenuo sam s tim jer je sample koji proucavam s naparavljen s tim. boljeg razloga od toga nema (osim mozda da neznam ni za koji drugi).
krenuo sam s tim jer je sample koji proucavam s naparavljen s tim. boljeg razloga od toga nema (osim mozda da neznam ni za koji drugi).
Probaj C++ Builder. S njime možeš raditi Windows, OSX, IOS i Android aplikacije vrlo jednostavno. Puno jednostavnji je od Qt-a i ima mnogo manje koda.