Написал код, но почему-то работает неправильно - C#
Формулировка задачи:
Задача: есть список кандидатов и фирм. Я с помощью бинарных свойств рандомно заполнил их качества. Сделал систему рейтинга, если хорошее качество +1 к рейтингу, плохое, то -1. Потом еще добавил метод распределения по возрастанию их рейтинга. Проблема в том, что почему-то у фирм и кандидатов одинаковый полностью рейтинг. В добавок еще и сортировка не работает. Хотя по-моему все правильно. Помогите в чем проблема, вот код:
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication3
- {
- class Firm
- {
- enum propertiesFirm
- {
- близко = 1,
- высокаяЗарплата = 2,
- низкаяЗарплата = 4,
- далеко = 8
- }
- Random rnd = new Random();
- public string[] firmaName = new string[3];
- int[] ballFirm = new int[3];
- propertiesFirm[] firma = new propertiesFirm[3];
- public void FormFirms()
- {
- int p = 0, q = 0, currentProps = 0;
- for (int i = 0; i < 3; i++)
- {
- ballFirm[i] = 0;
- currentProps = 0;
- for (int j = 0; j < 4; j++)
- {
- p = rnd.Next(2);
- q = (int)Math.Pow(2, j);
- if (p == 1)
- {
- currentProps += q;
- if (q == 1 || q == 2)
- ballFirm[i]++;
- else ballFirm[i]--;
- }
- }
- firma[i] = (propertiesFirm)currentProps;
- firmaName[i] = "Фирма № " + (i + 1) + "; " + ballFirm[i];
- }
- }
- public void Sort()
- {
- for (int j = 0; j < 3; j++)
- {
- for (int i = 1; i < 3; i++)
- {
- if (ballFirm[i] > ballFirm[i - 1])
- {
- string w = firmaName[i - 1];
- firmaName[i - 1] = firmaName[i];
- firmaName[i] = w;
- }
- }
- }
- }
- public void qq()
- {
- Console.WriteLine("Фирма; оценка");
- FormFirms();
- for (int i = 0; i < 3; i++)
- Console.WriteLine(firmaName[i]);
- Sort();
- for (int i = 0; i < 3; i++)
- {
- Console.WriteLine(firmaName[i]);
- }
- Console.ReadLine();
- }
- }
- class Candidate
- {
- enum propertiesCand
- {
- большойОпытРаботы = 1,
- нетОпытаРаботы = 2,
- естьОбразование = 4,
- нетОбразования = 8
- }
- Random rndm = new Random();
- public string[] candidateName = new string[3];
- int[] ballCand = new int[3];
- propertiesCand[] candidate = new propertiesCand[3];
- public void FormCands()
- {
- int p = 0, q = 0, currentProps = 0;
- for (int i = 0; i < 3; i++)
- {
- ballCand[i] = 0;
- currentProps = 0;
- for (int j = 0; j < 4; j++)
- {
- p = rndm.Next(2);
- q = (int)Math.Pow(2, j);
- if (p == 1)
- {
- currentProps += q;
- if (q == 1 || q == 2)
- ballCand[i]++;
- else ballCand[i]--;
- }
- }
- candidate[i] = (propertiesCand)currentProps;
- candidateName[i] = "Кандидат № " + (i + 1) + "; " + ballCand[i];
- }
- }
- public void Sotr()
- {
- for (int j = 0; j < 3; j++)
- {
- for (int i = 1; i < 3; i++)
- {
- if (ballCand[i] > ballCand[i - 1])
- {
- string w = candidateName[i - 1];
- candidateName[i - 1] = candidateName[i];
- candidateName[i] = w;
- }
- }
- }
- }
- public void qqCand()
- {
- Console.WriteLine("Кандидат; оценка");
- FormCands();
- for (int i = 0; i < 3; i++)
- Console.WriteLine(candidateName[i]);
- Sotr();
- for (int i = 0; i < 3; i++)
- {
- Console.WriteLine(candidateName[i]);
- }
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Firm firmaa = new Firm();
- Candidate cand = new Candidate();
- firmaa.qq();
- cand.qqCand();
- Console.ReadLine();
- }
- }
- }
Решение задачи: «Написал код, но почему-то работает неправильно»
textual
Листинг программы
- public void Sotr()
- {
- for (int j = 0; j < 3; j++)
- for (int i = j; i < 3; i++)
- {
- if (ballCand[j] > ballCand[j])
- {
- string w = candidateName[j];
- candidateName[j] = candidateName[i];
- candidateName[i] = w;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д