online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
/* Užduotį paruošė ir sprendė Eimutis Karčiauskas DUOTAS mokinių sąrašas - RASKITE kiek taškų surinko atskirų klasių mokiniai, Klases surikiuokite taškų mažėjimo tvarka bei klasės kodą. <<< Pradiniai duomenys - perkelkite į failą >>> 6 Simonas 12a 66 Martyna 10b 100 Jonas 11c 75 Marius 11c 68 Stepas 12a 77 Darius 12c 68 */ #include <iostream> #include <algorithm> using namespace std; struct Mokinys { string vardas; string klase; // klasės kodas int taskai; }; Mokinys mokiniai[100]; // pagal nutylėjimą reikšmės nulinės int msk = 0; // mokinių sąraše kiekis struct Klase { string vardas; // klasės kodas int mok_sk; // klasės mokinių skaičius int taskai; // klasės mokinių taškų suma }; Klase klases[30]; // pagal nutylėjimą reikšmės nulinės int ksk = 0; // klasių sąraše kiekis //================================================== // taikysime paiešką su apsaugine reikšme pabaigoje ! // randa klasės indeksą pagal paieškos kodą // o jei nėra, tai papildo klasių masyvą int rastiKlase(string paieska) { klases[ksk].vardas = paieska; // visada rasime :) int i = 0; while (klases[i].vardas != paieska) i++; if(i == ksk) ksk++; // jei nebuvo - padidiname return i; } //------------------------------------------------ void skaiciuoti(){ // grupuojame pagal klases for (int i = 0; i < msk; i++){ Mokinys m = mokiniai[i]; int ki = rastiKlase(m.klase); klases[ki].mok_sk++; klases[ki].taskai += m.taskai; } } //------------------------------------------------ void spausdinti(){ // pageidaujamų rezultatų išvedimas cout << "===\n klasiu_sk= " << ksk << endl; for (int i = 0; i < ksk; i++){ Klase k = klases[i]; cout << k.vardas << ' ' << k.mok_sk << ' ' << k.taskai << endl; } } //------------------------------------------------ void skaityti(){ // iš srauto cin formuojamas sąrašas cin >> msk; for (int i = 0; i < msk; i++){ Mokinys m; cin >> m.vardas >> m.klase >> m.taskai; mokiniai[i] = m; cout << m.vardas << '\t' << m.klase << ' ' << m.taskai << endl; } } //============================================ bool arTvarka(Klase a, Klase b){ // rikiavimo kriterijus return a.taskai > b.taskai || a.taskai == b.taskai && a.vardas < b.vardas; } // rikiavimo algoritmas - visada toks pat :) void rikiuoti(Klase mas[], int n){ for (int i=0; i<n-1; i++) for (int j = i+1; j < n; j++) if(!arTvarka(mas[i], mas[j])) swap(mas[i], mas[j]); } //------------------------------------------------ int main(){ freopen ("U1.txt","r",stdin); //freopen ("U1rez.txt","w",stdout); // pradžioje uždenkite skaityti(); skaiciuoti(); rikiuoti(klases, ksk); //sort(klases, klases + ksk, arTvarka); spausdinti(); }
6 Simonas 12a 66 Martyna 10b 100 Jonas 11c 75 Marius 11c 68 Stepas 12a 77 Darius 12c 68

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