Написал код, но почему-то работает неправильно - C#

Узнай цену своей работы

Формулировка задачи:

Задача: есть список кандидатов и фирм. Я с помощью бинарных свойств рандомно заполнил их качества. Сделал систему рейтинга, если хорошее качество +1 к рейтингу, плохое, то -1. Потом еще добавил метод распределения по возрастанию их рейтинга. Проблема в том, что почему-то у фирм и кандидатов одинаковый полностью рейтинг. В добавок еще и сортировка не работает. Хотя по-моему все правильно. Помогите в чем проблема, вот код:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ConsoleApplication3
  7. {
  8. class Firm
  9. {
  10. enum propertiesFirm
  11. {
  12. близко = 1,
  13. высокаяЗарплата = 2,
  14. низкаяЗарплата = 4,
  15. далеко = 8
  16. }
  17. Random rnd = new Random();
  18. public string[] firmaName = new string[3];
  19. int[] ballFirm = new int[3];
  20. propertiesFirm[] firma = new propertiesFirm[3];
  21. public void FormFirms()
  22. {
  23. int p = 0, q = 0, currentProps = 0;
  24. for (int i = 0; i < 3; i++)
  25. {
  26. ballFirm[i] = 0;
  27. currentProps = 0;
  28. for (int j = 0; j < 4; j++)
  29. {
  30. p = rnd.Next(2);
  31. q = (int)Math.Pow(2, j);
  32. if (p == 1)
  33. {
  34. currentProps += q;
  35. if (q == 1 || q == 2)
  36. ballFirm[i]++;
  37. else ballFirm[i]--;
  38. }
  39. }
  40. firma[i] = (propertiesFirm)currentProps;
  41. firmaName[i] = "Фирма № " + (i + 1) + "; " + ballFirm[i];
  42. }
  43. }
  44. public void Sort()
  45. {
  46. for (int j = 0; j < 3; j++)
  47. {
  48. for (int i = 1; i < 3; i++)
  49. {
  50. if (ballFirm[i] > ballFirm[i - 1])
  51. {
  52. string w = firmaName[i - 1];
  53. firmaName[i - 1] = firmaName[i];
  54. firmaName[i] = w;
  55. }
  56. }
  57. }
  58. }
  59. public void qq()
  60. {
  61. Console.WriteLine("Фирма; оценка");
  62. FormFirms();
  63. for (int i = 0; i < 3; i++)
  64. Console.WriteLine(firmaName[i]);
  65. Sort();
  66. for (int i = 0; i < 3; i++)
  67. {
  68. Console.WriteLine(firmaName[i]);
  69. }
  70. Console.ReadLine();
  71. }
  72. }
  73. class Candidate
  74. {
  75. enum propertiesCand
  76. {
  77. большойОпытРаботы = 1,
  78. нетОпытаРаботы = 2,
  79. естьОбразование = 4,
  80. нетОбразования = 8
  81. }
  82. Random rndm = new Random();
  83. public string[] candidateName = new string[3];
  84. int[] ballCand = new int[3];
  85. propertiesCand[] candidate = new propertiesCand[3];
  86. public void FormCands()
  87. {
  88. int p = 0, q = 0, currentProps = 0;
  89. for (int i = 0; i < 3; i++)
  90. {
  91. ballCand[i] = 0;
  92. currentProps = 0;
  93. for (int j = 0; j < 4; j++)
  94. {
  95. p = rndm.Next(2);
  96. q = (int)Math.Pow(2, j);
  97. if (p == 1)
  98. {
  99. currentProps += q;
  100. if (q == 1 || q == 2)
  101. ballCand[i]++;
  102. else ballCand[i]--;
  103. }
  104. }
  105. candidate[i] = (propertiesCand)currentProps;
  106. candidateName[i] = "Кандидат № " + (i + 1) + "; " + ballCand[i];
  107. }
  108. }
  109. public void Sotr()
  110. {
  111. for (int j = 0; j < 3; j++)
  112. {
  113. for (int i = 1; i < 3; i++)
  114. {
  115. if (ballCand[i] > ballCand[i - 1])
  116. {
  117. string w = candidateName[i - 1];
  118. candidateName[i - 1] = candidateName[i];
  119. candidateName[i] = w;
  120. }
  121. }
  122. }
  123. }
  124. public void qqCand()
  125. {
  126. Console.WriteLine("Кандидат; оценка");
  127. FormCands();
  128. for (int i = 0; i < 3; i++)
  129. Console.WriteLine(candidateName[i]);
  130. Sotr();
  131. for (int i = 0; i < 3; i++)
  132. {
  133. Console.WriteLine(candidateName[i]);
  134. }
  135. }
  136. }
  137. class Program
  138. {
  139. static void Main(string[] args)
  140. {
  141. Firm firmaa = new Firm();
  142. Candidate cand = new Candidate();
  143. firmaa.qq();
  144. cand.qqCand();
  145. Console.ReadLine();
  146. }
  147. }
  148. }

Решение задачи: «Написал код, но почему-то работает неправильно»

textual
Листинг программы
  1. public void Sotr()
  2. {
  3.     for (int j = 0; j < 3; j++)
  4.     for (int i = j; i < 3; i++)
  5.     {
  6.         if (ballCand[j] > ballCand[j])
  7.         {
  8.             string w = candidateName[j];
  9.             candidateName[j] = candidateName[i];
  10.             candidateName[i] = w;
  11.         }
  12.     }
  13. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут