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

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


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

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

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