Написал код, но почему-то работает неправильно - 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;
}
}
}