Реализовать подсчет баллов в тесте - C#

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

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

делаю тест. принцип такой: есть несколько блоков вопросов для каждого из результатов теста, ответ на вопрос происходит посредством выставления галок в чекбоксы. за каждый выбранный чекбокс начисляется балл (или отнимается, но в данном случае это не важно). соответственно, теоретически нужно учесть ситуацию, когда одинаковое количество баллов будет у трех и более вариантов. и вот тут у меня затык, думаю, здесь ошибка, которую я не вижу. я делаю так. в самом конце, когда каждый вариант получил свое окончательное число баллов, я подсчитываю, сколько из них двойных, тройных и пр.
 private void esc6_Checked(object sender, RoutedEventArgs e)//esc6
        {
            esc += 1;//это переменная, относящаяся к одному из вариантов
            if ((esc > 1) && (esc < 3))
            {
                pairs += 1;//пары
            }
            if ((esc > 2) && (esc < 4))
            {
                threes += 1;//тройки
            }
            if (esc == 4)
            {
                fours += 1;//четверки
            }
        }
а затем пишу вот такое
  if ( (fours > threes) && (fours > pairs) && (fours > dev) && (fours > rev) && (fours > sci) && (fours > shit) && (fours > esc) && (fours > inn))
            {
                f.Show();
                this.Hide();
            }
 
            if ( (threes > fours) && (threes > pairs) && (threes > dev) && (threes > rev) && (threes > sci) && (threes > shit) && (threes > esc) && (threes > inn))
            {
                t.Show();
                this.Hide();
            }
            
           if  ((pairs > threes) && (pairs > fours) && (pairs > dev) && (pairs > rev) && (pairs > sci) && (pairs > shit) && (pairs > esc) && (pairs > inn))
            {
                p.Show();
                this.Hide();
с парами работает, с тройками и четверками нет. не понимаю, почему. условие такое длинное, чтобы обеспечить выдачу формы с ответом для смешанного варианта, а не для какого-то конкретного, у которого получилось столько же баллов.

Решение задачи: «Реализовать подсчет баллов в тесте»

textual
Листинг программы
var list = new int[] { one, two, three, four };
var indexList = new List<int>();
var maxVal = list.Max();
for(var i = 0; i < list.Length; i++)
{
  if (list[i] == maxVal)
    indexList.Add(i);
}

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


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

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

5   голосов , оценка 3.8 из 5
Похожие ответы