online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
/* Sprendė Eimutis Karčiauskas Kauno 22 vm 1966m. laidos abiturientas https://www.nsa.smm.lt/wp-content/uploads/2021/03/6287_IT-VBE-1_2016-GALUTINIS.pdf <<< Pradiniai duomenys - perkėlimui į failą >>> 10 prisitraukimai 10 atsispaudimai 15 atsilenkimai 12 prisitraukimai 4 atsilenkimai 15 atsilenkimai 10 prisitraukimai 12 atsilenkimai 10 atsispaudimai 2 atsispaudimai 2 01234567890123456789 - skirta simboliams skaičiuoti */ #include <iostream> #include <algorithm> // reikalinga rikiavimui using namespace std; struct Pratimas { string vardas; // pratimo vardas int kiekis; // susumuotas kiekis }; // visos reikšmės pagal nutylėjimą nulinės Pratimas pratimai[20]; // skirtingų pratimų sąrašas int pr_sk; // skirtingų pratimų skaičius //------------------------------------------------ // garantuota paieška su apsaugine reikšme pabaigoje int rastiPratimoInd(string paieska) { pratimai[pr_sk].vardas = paieska; // visada rasime :) int i = 0; while (pratimai[i].vardas != paieska) i++; if(i == pr_sk) pr_sk++; // jei nebuvo - padidiname return i; } //------------------------------------------------ string getFix(int n){ // skaitoma fiksuoto ilgio eilutė char buf[n+1]; // buferis vardo nuskaitymui cin.get(buf, n+1); // fiksuoto ilgio teksto nuskaitymas return buf; // gražinant buf pakeičiama į string } //------------------------------------------------ void skaityti(){ // skaitome duomenis iš srauto cin int dsk; // duomenų eilučių skaičius cin >> dsk >> ws; // jį įvedame for(int i=0; i<dsk; i++){ string vardas = getFix(20); int kartai; // vieno pratimo kartai cin >> kartai >> ws; int pi = rastiPratimoInd(vardas); pratimai[pi].kiekis += kartai; } } //------------------------------------------------ void spausdinti(){ // spausdina į ekraną arba į failą for (int i = 0; i < pr_sk; i++){ Pratimas p = pratimai[i]; cout << p.vardas << " " << p.kiekis << endl; } } //------------------------------------------------ // rikiavimo kriterijaus funkcija bool arTvarka(Pratimas& a, Pratimas& b){ return a.kiekis > b.kiekis || a.kiekis == b.kiekis && a.vardas == b.vardas; } //------------------------------------------------ int main(){ freopen ("U2.txt","r",stdin); freopen ("U2rez.txt","w",stdout); skaityti(); sort(pratimai, pratimai+pr_sk, arTvarka); spausdinti(); return 0; }
10 prisitraukimai 10 atsispaudimai 15 atsilenkimai 12 prisitraukimai 4 atsilenkimai 15 atsilenkimai 10 prisitraukimai 12 atsilenkimai 10 atsispaudimai 2 atsispaudimai 2 01234567890123456789 - skirta simboliams skaičiuoti
atsilenkimai 47 prisitraukimai 26 atsispaudimai 19

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