Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2017, 14:46   #1
ykdna
Новичок
Джуниор
 
Регистрация: 19.04.2017
Сообщений: 1
По умолчанию Ошибка в коде

Возникла проблема при создании программы (тест с вариантами ответа). На форме расположены три радиобаттона(варианты ответов), лейбл(вопросы) и кнопка при нажатии на которую меняются вопрос и ответы. В тесте, например, 3 вопроса. Программа доходит только до второго, а потом останавливается. Подчеркивает
label1.Text = questions[k];
Ошибка: индекс находится вне границ массива


Код:
namespace WindowsFormsApplication1
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }
        string chosen;
        int k=0;
        int sum=0;
        string[] questions = new string[]{ "5+5", "The capital of France", "What is location city of Big Ben" };
        string[] varianta = new string[]
            {"10",
            "Paris",
            "Montreal"};
        string[] variantb = new string[]
            {"5",
            "Berlin",
            "Moscow"};
        string[] variantc = new string[]
            {"12",
            "Maison",
            "London"};

        string[] rightanswers = new string[] { "10", "Paris", "London" };
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            radioButton1.Text = chosen;
        }
        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            radioButton2.Text = chosen;
        }
        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
            radioButton3.Text = chosen;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            k++;
            label1.Text = questions[k];
                radioButton1.Text = varianta[k];
                radioButton2.Text = variantb[k];
                radioButton3.Text = variantc[k];
            if (chosen==rightanswers[k])
            { sum = sum + 1;
            }
            label2.Text="Kol-vo nabrannyh ochkov=" + sum;
        }
    }
}
ykdna вне форума Ответить с цитированием
Старый 29.04.2017, 15:05   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Потому что массивы нумеруются с 0 и счетчик надо увеличивать после.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java. Ошибка. Компилируется, но не запускается. Ошибка duplicate class. Проблема не в коде. nevender Общие вопросы по Java, Java SE, Kotlin 2 13.02.2016 13:24
Ошибка в коде. Dima9595 Паскаль, Turbo Pascal, PascalABC.NET 8 20.04.2014 13:24
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
Ошибка в коде C++ Karina89 Помощь студентам 0 30.11.2011 20:23
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58