Member 13560407 Ответов: 1

Как создать вторичный цикл на основе входных данных от первичного?


Я создаю тест для класса. Это десять вопросов и множественный выбор. У меня есть первая петля, и она проходит достаточно гладко. Однако i компонент этой викторины требует второго цикла для запуска вопросов, на которые даны неправильные ответы, он же второй шанс. Как создать этот вторичный цикл?
<pre>using System;
using System.Linq;

namespace Checkpoint_3
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Quiz");
            //Variables
            bool answerCorrect = false; // will be used to evaluate if answer is correct or not
            string[] questions = { "2+2=", "4x5=", "8+2=", "2x100=", "3+3=", "2+100", "2-2=", "1+2=", "3x3=15", "45-5+8=48" }; // will be questions used on test. 8 Multiple choice and 2 true/false
            string[] answers = { "a.4 b.2 c.6 d. 10", "a.40 b.20 c.16 d. 11", "a.6 b.12 c.16 d. 10", "a.104 b.200 c.65 d. 102", "a.4 b.2 c.6 d. 10", "a.14 b.200 c.60 d. 102", "a.4 b.2 c.0 d. 10", "a.3 b.2 c.6 d. 102", "true false", " true false" }; // these will stand as answer bank for all questions
            string [] correctanswer = { "a", "b", "d", "b", "c", "d", "c", "a", "false", "true" }; //these are the correct answers to all the question. any other selections will be countd as incorrect
            int[] scoreCard = { }; // everyone starts with 0 correct out of ten. once quiz is completed score will be listed as 1-10. 
            
            
            

            //Welcome To Program
            Console.WriteLine("Ryan Hinds, ENGR101- Quiz");
            Console.WriteLine();


            
            for (int i = 0; i < 10; i++)
            {
                
                Console.WriteLine(questions[i]);
                Console.WriteLine();
                Console.WriteLine(answers[i]);
                Console.WriteLine("Answer");
               
                string input = Console.ReadLine(); char letter; char.TryParse(input, out letter);
                if (input==correctanswer[i])
                {
                    Console.WriteLine(" You Are Correct");
                    Addscore(scoreCard[i]);
                }
                else
                    Console.WriteLine("Wrong");
                


                    Console.WriteLine();
                Console.WriteLine();
                

            }
           

            Console.ReadKey();

        }

        
    }
}


Что я уже пробовал:

Я пробовал работать с утверждениями if и else, но не могу заставить их прилипнуть.

Karthik_Mahalingam

что такое Addscore ?

1 Ответов

Рейтинг:
1

Jochen Arndt

Вы можете сделать это, используя внешнюю петлю для второго шанса:

// Array for correct answers
bool answered[] = new bool[10];
for (int chance = 0; chance < 2; chance++)
{
    for (int i = 0; i < 10; i++)
    {
        // Ask if no correct answer provided so far
        if (!answered[i])
        {
            // Ask the question here
            // If correct, set answered[i] to true
        }
    }
}
int score = 0;
for (int i = 0; i < 10; i++)
{
    if (answered[i])
        score++;
}