online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
/* Sprendė Eimutis Karčiauskas 1966m. laidos abiturientas 2 Rima Liepa 1 Ungurys 456 Petras A. Petraitis 3 Lydeka 526 Veidrodinis karpis 250 Lydeka 125 5 Ungurys 15 Veidrodinis karpis 5 Kuoja 3 Karosas 5 Lydeka 15 --*/ #include <iostream> using namespace std; struct Duomuo{ // universali struktūra - tinka žvejui ir žuvims string ident; // žveją ar žuvį identifikuojanti informacija int num; // skaičius: kiekis, svoris ar taškai }; // *************************************************** // bendri pradiniai duomenys ir rezultatai const int maxK = 30; Duomuo dalyviai[maxK], // pradžioje su žuvų kiekiu, paskui- taškai pagautosZuvys[maxK*maxK], //visų dalyvių pagautos žuvys zuvys[maxK], // pradinis žuvų taškų registras zuvuSvoriai[maxK]; // rezultatas su atskirų rūšių svoriais int dalN = 0, zuvN = 0; // ****************************************************** // įveda vieną duomenį, esantį vienoje eilutėje: ident ir skaičių void IvestiDuomeni(Duomuo& duom){ cin.ignore(80, '\n'); // pradedame skaityti nuo naujos eilutės char idBuf[21]; // buferis ident nuskaitymui cin.get(idBuf, 21); // fiksuoto teksto dydžio nuskaitymas int skaicius; cin >> skaicius; duom.ident = idBuf; duom.num = skaicius; } // *************************************************** // surenka duomenis apie dalyvius-žvejus ir jų pagautas žuvis void DalyviuDuomenys() { int pagZuvN = 0; // visų žvejų pagautos žuvys viename masyve cin >> dalN; for(int idal=0; idal<dalN; idal++){ IvestiDuomeni(dalyviai[idal]); for(int ipz=0; ipz<dalyviai[idal].num; ipz++) IvestiDuomeni(pagautosZuvys[pagZuvN++]); } } // *************************************************** // surenka duomenis apie gaudomas žuvis ir paruošia žuvų svorių masyvą void ZuvuDuomenys() { cin >> zuvN; for(int izuv=0; izuv<zuvN; izuv++){ IvestiDuomeni(zuvys[izuv]); zuvuSvoriai[izuv].ident = zuvys[izuv].ident; zuvuSvoriai[izuv].num = 0; // pradinis svoris = 0; } } // *************************************************** // pagal ident randa ir grąžina žuvies taškus + padidina žuvų svorį int RastiZuvi(Duomuo zuvys[], Duomuo zuvuSvoriai[], Duomuo zuvis){ int ind = 0; while(zuvys[ind].ident != zuvis.ident) ind++; zuvuSvoriai[ind].num += zuvis.num; return zuvys[ind].num; } // *************************************************** // suskaičiuojame dalyvių (žvejų) taškus pagal žuvų svorį ir rūšį void Taskai(){ int ipz = 0; for(int idal = 0; idal<dalN; idal++){ int sumTsk = 0; for(int i = 0; i<dalyviai[idal].num; i++){ Duomuo zuvis = pagautosZuvys[ipz++]; sumTsk += zuvis.num < 200 ? 10 : 30; sumTsk += RastiZuvi(zuvys, zuvuSvoriai, zuvis); } dalyviai[idal].num = sumTsk; } } // *************************************************** bool arTvarka(Duomuo a, Duomuo b){ return a.num < b.num || a.num == b.num && a.ident < b.ident; } void Rikiuoti(Duomuo duom[], int n){ for(int i = 0; i < n - 1; i++){ for(int j = i + 1; j < n; j++){ if(!arTvarka(duom[i], duom[j])) swap(duom[i], duom[j]); } } } // *************************************************** void Spausdinti(Duomuo duomenys[], int dalN, string pavadinimas){ cout << pavadinimas << endl; for(int i=0; i<dalN; i++){ Duomuo d = duomenys[i]; cout << d.ident << " " << d.num << endl; } } // *************************************************** int main() { freopen ("U2.txt","r",stdin); //freopen ("U2rez.txt","w",stdout); DalyviuDuomenys(); ZuvuDuomenys(); Taskai(); Rikiuoti(dalyviai, dalN); Rikiuoti(zuvuSvoriai, zuvN); Spausdinti(dalyviai, dalN, "DALYVIAI"); Spausdinti(zuvuSvoriai, zuvN, "LAIMIKIS"); }
2 Rima Liepa 1 Ungurys 456 Petras A. Petraitis 3 Lydeka 526 Veidrodinis karpis 250 Lydeka 125 5 Ungurys 15 Veidrodinis karpis 5 Kuoja 3 Karosas 5 Lydeka 15

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue