Advertisement
svetoslavhl

Untitled

May 27th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.02 KB | None | 0 0
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(){
  6.  
  7. int N;
  8.  
  9. do{
  10.  
  11. cout << "Vyvedete broia na uchasnicite:" << endl;
  12. cin >> N;
  13.  
  14. if(N <= 0 || N > 1000){
  15. cout << "Broiat uchastnici triabva da byde polojitelno chislo ne po goliamo ot 1000" << endl;
  16.  
  17. }
  18.  
  19.  
  20. }while(N <= 0 || N > 1000);
  21.  
  22.  
  23. struct uchastnici{
  24.  
  25. char imena[50];
  26. char grad[20];
  27. char uchilishte[30];
  28. int rezultat;
  29.  
  30.  
  31.  
  32.  
  33. }uchastnik[N] , uchastnikVyveden[N] ,auxUchastnik[1];
  34.  
  35.  
  36. //VYVEJDAME UCHASTNICITE
  37.  
  38.  
  39. int i = 0;
  40. int opcia = 1;
  41.  
  42.  
  43. while(i < 1000 && opcia == 1){
  44.  
  45. cout << "Vyvedete dvete imena na uchastnika: " << endl;
  46. cin.getline(uchastnik[i].imena , 51 , '\n');
  47. cin.getline(uchastnik[i].imena , 51 , '\n');
  48.  
  49. cout << "Vyvedete grad na uchastnika: " << endl;
  50. cin.getline(uchastnik[i].grad , 21 , '\n');
  51.  
  52. cout << "Vyvedete uchilishte na uchastnika: " << endl;
  53. cin.getline(uchastnik[i].uchilishte , 31 , '\n');
  54.  
  55.  
  56.  
  57. do{
  58. cout << "Vyvedete rezultat na uchastnika:" << endl;
  59. cin >> uchastnik[i].rezultat;
  60.  
  61. if(uchastnik[i].rezultat < 0 ){
  62. cout << "Rezultata na uchastnika triabva da byde polojitelno chislo"<< endl;
  63.  
  64.  
  65. }
  66.  
  67.  
  68. }while(uchastnik[i].rezultat < 0);
  69.  
  70.  
  71.  
  72.  
  73. i++;
  74.  
  75. cout << "Vyvedete 0 za krai ili 1 za prodyljavane na vyvejdane na uchastnici:" << endl;
  76. cin >> opcia;
  77.  
  78.  
  79. }
  80.  
  81.  
  82. char gradVyveden[20];
  83.  
  84. cout << "Vyvedete grada uchastnicite ot koito iskate da konsultirate: " << endl;
  85. cin.getline(gradVyveden , 21 , '\n');
  86. cin.getline(gradVyveden , 21 , '\n');
  87.  
  88.  
  89. //IZVEJDAME UCHASTNICITE SAMO OT TOZI GRAD
  90.  
  91. int j = 0;
  92.  
  93. for(int a = 0 ; a < i ; a++){
  94. if(strcmp(gradVyveden,uchastnik[a].grad) == 0){
  95. uchastnikVyveden[j] = uchastnik[a];
  96. j++;
  97.  
  98.  
  99. }
  100.  
  101.  
  102. }
  103.  
  104.  
  105. //PODREJDAME UCHASTNICITE OT TOZI GRAD PO IME NA UCHILISHTE
  106.  
  107.  
  108. for(int y = 0 ; y < 1000 ; y++){
  109.  
  110. for(int b = 0; b < j-1 ; b++){
  111.  
  112. if(strcmp(uchastnikVyveden[b].uchilishte , uchastnikVyveden[b+1].uchilishte) > 0){
  113.  
  114. auxUchastnik[0] = uchastnikVyveden[b];
  115. uchastnikVyveden[b] = uchastnikVyveden[b+1];
  116. uchastnikVyveden[b+1] = auxUchastnik[0];
  117.  
  118. }
  119.  
  120.  
  121. }
  122.  
  123.  
  124. }
  125.  
  126.  
  127. //PODREJDAME UCHASTNICITE OT TOZI GRAD S EDNAKYVO UCHILISHTE PO REZULTAT V NIZHODIASHT RED
  128.  
  129.  
  130. for(int y = 0 ; y < 1000 ; y++){
  131.  
  132.  
  133. for(int c = 0; c < j-1; c++){
  134.  
  135. if(strcmp(uchastnikVyveden[c].uchilishte , uchastnikVyveden[c+1].uchilishte) == 0){
  136.  
  137. if(uchastnikVyveden[c].rezultat < uchastnikVyveden[c+1].rezultat){
  138.  
  139. auxUchastnik[0] = uchastnikVyveden[c];
  140. uchastnikVyveden[c] = uchastnikVyveden[c+1];
  141. uchastnikVyveden[c+1] = auxUchastnik[0];
  142.  
  143.  
  144. }
  145.  
  146.  
  147. }
  148.  
  149.  
  150. }
  151.  
  152.  
  153. }
  154.  
  155.  
  156.  
  157. //OTPECHATVAME REZULTATA NA KONZOLATA
  158.  
  159.  
  160. for(int b = 0 ; b < j ; b++){
  161. cout << uchastnikVyveden[b].imena << ", " << uchastnikVyveden[b].grad << ", " << uchastnikVyveden[b].uchilishte << ", " << uchastnikVyveden[b].rezultat << " tochki"<< endl;
  162.  
  163.  
  164. }
  165.  
  166.  
  167. system("pause");
  168.  
  169.  
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement