Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <fstream>
- #include <algorithm>
- #include <vector>
- #include <string>
- using namespace std;
- int n = 0;
- struct kalbos {
- string p;
- int sen = 0;
- int dab = 0;
- double skirtumas = 0;
- int visoMaz = 0;
- int maz = 0;
- int mazX = 0;
- int mazKiek = 0;
- int visoDid = 0;
- int did = 0;
- int didX = 0;
- int didKiek = 0;
- };
- kalbos m[100];
- void skaitymas(int &n, kalbos m[]);
- void skaiciavimas(int n, kalbos m[]);
- void skaiciavimas2(int n, kalbos m[]);
- void spausdinimas(int n, kalbos m[]);
- int main()
- {
- skaitymas(n, m);
- skaiciavimas(n, m);
- skaiciavimas2(n, m);
- spausdinimas(n, m);
- }
- void skaitymas(int &n, kalbos m[])
- {
- char x[25];
- ifstream d("duom.txt");
- d >> n;
- d.ignore();
- for (int i = 0; i < n; i++)
- {
- d.get(x, 25);
- m[i].p = x;
- d >> m[i].dab >> m[i].sen;
- d.ignore();
- }
- d.ignore();
- d.close();
- }
- void skaiciavimas(int n, kalbos m[])
- {
- for (int i = 0; i < n; i++)
- {
- m[i].skirtumas = m[i].sen - m[i].dab;
- }
- }
- void skaiciavimas2(int n, kalbos m[])
- {
- //Maziausios reiksmes paieska
- m[0].maz = m[0].skirtumas;
- for (int i = 0; i < n; i++)
- {
- if (m[i].skirtumas < m[0].maz)
- {
- m[0].maz = m[i].skirtumas;
- m[0].mazX = i; //Susieskojimas artimiausios arba vieninetles reiksmes
- }
- }
- int atZ[22];
- for(int i = 0; i < n; i++)
- {
- if (m[0].maz == m[i].skirtumas && i != m[0].mazX)
- {
- m[0].mazKiek++;
- }
- }
- int k = 1;
- for (int i = 0; i < n; i++)
- {
- if (m[0].maz == m[i].skirtumas && i != m[0].mazX)
- {
- atZ[k] = i;
- k++;
- }
- }
- m[0].visoMaz = m[0].mazX;
- if (m[0].mazKiek != 0)
- {
- for (int i = 1; i <= m[0].mazKiek; i++)
- {
- m[i].visoMaz = atZ[i];
- }
- }
- //Didziausios reiksmes paieska
- //m[0].did = m[0].skirtumas;
- for (int i = 0; i < n; i++)
- {
- if (m[0].did < m[i].skirtumas)
- {
- m[0].did = m[i].skirtumas;
- m[0].didX = i; //Susiradimas artimiausios arba vieninetles didziausios reiksmes
- }
- }
- int didZ[22];
- for (int i = 0; i < n; i++)
- {
- if (m[0].did == m[i].skirtumas && i != m[0].didX)
- {
- m[0].didKiek++; // Kiek dar tokiu paciu didziausiu reiksmiu yra
- }
- }
- int xx = 1;
- for (int i = 0; i < n; i++)
- {
- if (m[0].did == m[i].skirtumas && i != m[0].didX)
- {
- didZ[xx] = i;
- xx++;
- }
- }
- m[0].visoDid = m[0].didX;
- if (m[0].didKiek != 0)
- {
- for (int i = 1; i <= m[0].didKiek; i++)
- {
- m[i].did = didZ[i];
- }
- }
- }
- void spausdinimas(int n, kalbos m[])
- {
- ofstream r("rez.txt");
- //Didziausiu reiksmiu spausdinimas
- r << m[0].did << endl;
- for (int i = 0; i < m[0].didKiek + 1; i++)
- {
- r << m[m[i].visoDid].p << endl;
- }
- // Maziausios reiksmes spausdinimas
- r << abs(m[0].maz) << endl;
- for (int i = 0; i < m[0].mazKiek+1; i++)
- {
- r << m[ m[i].visoMaz ].p << endl;
- }
- r.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement