Перейти к содержанию

Программирование на C# (Массивы)


Рекомендуемые сообщения

Добрый день. 

Создаю программу на C# для тестирования на тему программирования, но не могу сделать так чтоб информация введенная пользователем сравнивалась с элементом массива в котором указан правильный ответ. 

 

В коде указаны два одномерных массива. В одном вопросы,а в другом ответы на них (ответы стоят рандомные, не обращайте внимание там может стоять любое слово): 

String[] vopros = new string[5];
            vopros[0] = "В основе концепции объектно - ориентированного программирования лежит понятие";
            vopros[1] = "Перевод программ с языка высокого уровня на язык более низкого уровня обеспечивает программа";
            vopros[2] = "Алгоритм, в котором действия выполняются друг за другом, не повторяясь называется:";
            vopros[3] = "Логический тип данных объявляется служебным словом";
            vopros[4] = "Раздел переменных определяется служебным словом";
            
            
            //Масив ответов.
            String[] Answer = new string[5];
            Answer[0] = "1";
            Answer[1] = "2";
            Answer[2] = "3";
            Answer[3] = "4";
            Answer[4] = "5";

Ниже указан цикл вывода вопросов, а так же условие в котором переменная i должна сравниваться с массивом Answer (i- это ввод ответа пользователем, а Answer - это массив в котором есть элементы с ответами на вопросы). Если кто нибудь знает как сравнить элементы массива и введенный пользователем ответ, буду очень благодарен за помощь.

            String i;
            int S = 0; 
            foreach (string output in vopros) //Цикл
            {
                Console.Write ("\n" + output + "\n"); //Вывод вопросов.
                i = Console.ReadLine (); //Ввод ответа пользователем
                if (Answer == i) //Если ответ равняется элементу массива, то +1 бал, если нет 0
                {
                    S = S + 1; //+1 бал если ответ верен.
                }
                else
                {
                    S = S + 0; //Если ответ не совпадает 0 балов
                }
            }
            Console.Write("\n" + S); //Вывод балов после теста.

Я знаю что сравниваю выше в коде не элементы массива, а сам массив, но как сравнить именно элементы нигде не могу найти...

Изменено пользователем siways
Ссылка на сообщение
Поделиться на другие сайты
Алексей Игуменов

Должно быть так. Возможно синтаксис слегка отличается, т.к. я C# не знаю  :)

            String i,j;
            int S = 0; 
             for (int j = 0; j < 10; j++) {  
                Console.Write ("\n" + vopros[j]+ "\n"); //Вывод вопросов.
                i = Console.ReadLine (); //Ввод ответа пользователем
                if (Answer[j] == i)  
                   S++;
             }
             Console.Write("\n" + S); //Вывод балов после теста.
Ссылка на сообщение
Поделиться на другие сайты

@Алексей Игуменов, спасибо, уже помогли решить эту проблему с помощью создания словаря :)

 

Кому интересен код:

 Dictionary<string, string[]> questions = new Dictionary<string, string[]>();
            int points = 0;
            //список вопросов и массив ответов, где на нулевой позиции стоит номер ответа
            questions.Add("Какой формы земля?", new string[4] { "2", "Круглая", "Шарообразная", "Квадратная"});
            questions.Add("Это тупой тест?", new string[3] { "1", "Да", "Нет"});
            questions.Add("2 + 2 будет?", new string[5] { "3", "14", "532", "4", "332532" });
            questions.Add("Какого цвета небо?", new string[5] { "1", "Голубое", "Зеленое", "Красное", "Желтое" });
            questions.Add("Самая маленькая частица?", new string[6] { "5", "Нейтрон", "Протон", "Электрон", "Нейтрино", "Кварк" });
            foreach (var question in questions)
            {
                Console.Clear();
                Console.WriteLine(question.Key);
                //выводим варианты ответа
                for (int i = 1; i < question.Value.Count(); i++)
                    Console.WriteLine($"{i}. {question.Value[i]}");
                Console.Write("Ваш вариант ответа:");
                string answer = Console.ReadLine();
                //если он соответствует правильному то добавляем балл
                if (answer == question.Value[0])
                    points++;
            }
            Console.WriteLine($"Вы набрали {points} из {questions.Count}");

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Похожий контент

    • gecsagen
      От gecsagen
      Python (пайтон, питон) — высокоуровневый язык программирования общего назначения с динамической типизацией и автоматическим управлением памятью, ориентированный на повышение производительности разработчика, читаемости кода и его качества, а также на обеспечение переносимости написанных на нём программ.
       
      На данный момент язык программирования python является одним из самых популярных. Он используется для создания сайтов, для программ ИИ, data science и много где ещё.
       
      Предлагаю в этой теме обсуждать новые версии python, полезные ресурсы, книги, помогать друг другу в решение задач и написании кода.
      Ссылка на проект: https://www.python.org/
       
    • Serzol64
      От Serzol64
      Здесь мы пообщаемся на тему веб-разработки и ее проблемах.
      Если вы учитесь или хотите учиться созданию сайтов или делаете сайты, новичкам нужно будет рассказать о себе, планах по веб-разработке, своих рабочих проектах и навыках в ИТ и программированию в целом, чтобы я мог узнать о вас поглубже.
      6 лет заинтересован этой темой...
      Подключайтесь!
    • Soft
      От Soft
      Не получается организовать нахождение индекса в массиве. Вот такое условие:
      Вот код, но индекс считает не верно, не пойму в чём дело. Индекс это порядковый номер элемента массива, который попадает в данный интервал (-5,0).
       
      #include <iostream> int main() { const int N=6; int A[N]={9,11,-5,2,-2,1}; //массив для теста int arr[N]; int max; int index; int i=0, j=0; for (i=0; i<N; ++i) if(A[i]>=-5&&A[i]<=0) arr[j++]=A[i]; if(j==0) std::cout<<"No element"<<std::endl; else { max=arr[0]; index=0; for (i=1; i<j; ++i) if(max<arr[i]) { max=arr[i]; index = i; } std::cout<<"Max element "<<max<<std::endl; std::cout<<"Index is "<<"["<< index << "]"; } std::cout<<std::endl; }
    • RENSER
      От RENSER
      Здравствуйте, уважаемый Евгений Валентинович!
      Я ваш поклонник, мечтаю работать в Вашей компании.
      В какой среде разработки написан Ваш антивирус?
      Начал учить c++ в Visual Studio. Уверен, что визуальная оболочка написана именно в VS
      Но само ядро антивируса - не знаю.
       
       
      С уважением, Ренат
×
×
  • Создать...