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/2022/06/IT_2022_pagr.pdf <<< Pradiniai duomenys - perkėlimui į failą >>> 8 2 Atsilenkimai Rytas 10 Prisitraukimai Rytas 8 3 Atsispaudimai Diena 8 Tempimas Vakaras 8 Atsilenkimai Vakaras 9 1 Svarmenys Vakaras 11 3 Svarmenys Diena 10 Svarmenys Diena 12 Atsilenkimai Diena 15 2 Atsilenkimai Vakaras 22 Svarmenys Vakaras 10 3 Svarmenys Diena 15 Atsispaudimai Diena 15 Atsispaudimai Diena 5 2 Svarmenys Rytas 23 Svarmenys Vakaras 13 3 Atsispaudimai Rytas 10 Atsispaudimai Diena 12 Tempimas Vakaras 10 */ #include <iostream> #include <algorithm> // reikalinga rikiavimui using namespace std; struct Pratimas { string vardas; // pratimo vardas int sk_dd[3]; // skaitikliai trims dienos dalims int min_sk; // minučių skaitiklis bool d_poz[32]; // dienos požymiai - ar i dieną buvo pratimas }; // visos reikšmės pagal nutylėjimą nulinės Pratimas pratimai[20]; // skirtingų pratimų sąrašas int pr_sk; // skirtingų pratimų skaičius int d_sk; // dienų (duomenų eilučių) skaičius //------------------------------------------------ const string d_dalys[3] = {"Rytas", "Diena", "Vakaras"}; int rastiInd(string vardas){ // keičiame vardą į indeksą int i = 0; while(d_dalys[i] != vardas) i++; return i; } //------------------------------------------------ // Taikysime paiešką su apsaugine reikšme pabaigoje // Atitinka užduoties nurodymą: parašykite funkciją, kuri // sudarytų pratimų unikalių (nepasikartojančių) pavadinimų sąrašą. 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; } //------------------------------------------------ void skaityti(){ // skaitome duomenis iš srauto cin int p_sk; // vienos dienos pratimų skaičius cin >> d_sk; // įvedame dienų skaičių for (int dnr=0; dnr < d_sk; dnr++){ cin >> p_sk; // įvedame pratimų skaičių for(int j=0; j<p_sk; j++){ string vardas, dm; // dm - dienos metas int msk; // msk - minučių skaičius cin >> vardas >> dm >> msk; int pi = rastiPratimoInd(vardas); int di = rastiInd(dm); pratimai[pi].sk_dd[di]++; pratimai[pi].min_sk += msk; pratimai[pi].d_poz[dnr] = true; } } } //------------------------------------------------ void spausdinti(){ // spausdina į ekraną arba į failą for (int i = 0; i < pr_sk; i++){ Pratimas p = pratimai[i]; int kiek_dienu = 0; // skaičiuosime požymių sumą for(int dnr=0; dnr<d_sk; dnr++) kiek_dienu += p.d_poz[dnr]; cout << p.vardas << " " << kiek_dienu << " " << p.min_sk << endl; for(int k=0; k<3; k++) if(p.sk_dd[k] > 0) cout << d_dalys[k] << "\t" << p.sk_dd[k] << endl; } } //------------------------------------------------ // rikiavimo kriterijaus funkcija bool arTvarka(Pratimas& a, Pratimas& b){ return 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; }
8 2 Atsilenkimai Rytas 10 Prisitraukimai Rytas 8 3 Atsispaudimai Diena 8 Tempimas Vakaras 8 Atsilenkimai Vakaras 9 1 Svarmenys Vakaras 11 3 Svarmenys Diena 10 Svarmenys Diena 12 Atsilenkimai Diena 15 2 Atsilenkimai Vakaras 22 Svarmenys Vakaras 10 3 Svarmenys Diena 15 Atsispaudimai Diena 15 Atsispaudimai Diena 5 2 Svarmenys Rytas 23 Svarmenys Vakaras 13 3 Atsispaudimai Rytas 10 Atsispaudimai Diena 12 Tempimas Vakaras 10

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