Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- int main(){
- int N;
- do{
- cout << "Vyvedete broia na uchasnicite:" << endl;
- cin >> N;
- if(N <= 0 || N > 1000){
- cout << "Broiat uchastnici triabva da byde polojitelno chislo ne po goliamo ot 1000" << endl;
- }
- }while(N <= 0 || N > 1000);
- struct uchastnici{
- char imena[50];
- char grad[20];
- char uchilishte[30];
- int rezultat;
- }uchastnik[N] , uchastnikVyveden[N] ,auxUchastnik[1];
- //VYVEJDAME UCHASTNICITE
- int i = 0;
- int opcia = 1;
- while(i < 1000 && opcia == 1){
- cout << "Vyvedete dvete imena na uchastnika: " << endl;
- cin.getline(uchastnik[i].imena , 51 , '\n');
- cin.getline(uchastnik[i].imena , 51 , '\n');
- cout << "Vyvedete grad na uchastnika: " << endl;
- cin.getline(uchastnik[i].grad , 21 , '\n');
- cout << "Vyvedete uchilishte na uchastnika: " << endl;
- cin.getline(uchastnik[i].uchilishte , 31 , '\n');
- do{
- cout << "Vyvedete rezultat na uchastnika:" << endl;
- cin >> uchastnik[i].rezultat;
- if(uchastnik[i].rezultat < 0 ){
- cout << "Rezultata na uchastnika triabva da byde polojitelno chislo"<< endl;
- }
- }while(uchastnik[i].rezultat < 0);
- i++;
- cout << "Vyvedete 0 za krai ili 1 za prodyljavane na vyvejdane na uchastnici:" << endl;
- cin >> opcia;
- }
- char gradVyveden[20];
- cout << "Vyvedete grada uchastnicite ot koito iskate da konsultirate: " << endl;
- cin.getline(gradVyveden , 21 , '\n');
- cin.getline(gradVyveden , 21 , '\n');
- //IZVEJDAME UCHASTNICITE SAMO OT TOZI GRAD
- int j = 0;
- for(int a = 0 ; a < i ; a++){
- if(strcmp(gradVyveden,uchastnik[a].grad) == 0){
- uchastnikVyveden[j] = uchastnik[a];
- j++;
- }
- }
- //PODREJDAME UCHASTNICITE OT TOZI GRAD PO IME NA UCHILISHTE
- for(int y = 0 ; y < 1000 ; y++){
- for(int b = 0; b < j-1 ; b++){
- if(strcmp(uchastnikVyveden[b].uchilishte , uchastnikVyveden[b+1].uchilishte) > 0){
- auxUchastnik[0] = uchastnikVyveden[b];
- uchastnikVyveden[b] = uchastnikVyveden[b+1];
- uchastnikVyveden[b+1] = auxUchastnik[0];
- }
- }
- }
- //PODREJDAME UCHASTNICITE OT TOZI GRAD S EDNAKYVO UCHILISHTE PO REZULTAT V NIZHODIASHT RED
- for(int y = 0 ; y < 1000 ; y++){
- for(int c = 0; c < j-1; c++){
- if(strcmp(uchastnikVyveden[c].uchilishte , uchastnikVyveden[c+1].uchilishte) == 0){
- if(uchastnikVyveden[c].rezultat < uchastnikVyveden[c+1].rezultat){
- auxUchastnik[0] = uchastnikVyveden[c];
- uchastnikVyveden[c] = uchastnikVyveden[c+1];
- uchastnikVyveden[c+1] = auxUchastnik[0];
- }
- }
- }
- }
- //OTPECHATVAME REZULTATA NA KONZOLATA
- for(int b = 0 ; b < j ; b++){
- cout << uchastnikVyveden[b].imena << ", " << uchastnikVyveden[b].grad << ", " << uchastnikVyveden[b].uchilishte << ", " << uchastnikVyveden[b].rezultat << " tochki"<< endl;
- }
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement