using System.Collections.Generic;
using System.Threading.Tasks;
namespace MathQuizApplication
static void Main(string[] args)
Random random = new Random();
string[] allOperations = new string[] { "+", "*", "/", "-" };
string[] medium = new string[] { "*", "/" };
string[] easy = new string[] { "+", "-" };
double percentCorrect = 0.0;
Console.WriteLine("Enter a mode to play: ");
Console.WriteLine("\"Practice\"");
Console.WriteLine("\"Game\"");
Console.WriteLine("\"Exit\"");
input = Console.ReadLine();
if (!input.Equals("exit") && !input.Equals("game") && !input.Equals("practice"))
Console.WriteLine("Enter a valid input.");
if (input.Equals("exit"))
if (input.Equals("practice"))
Console.WriteLine("Practice mode selected:");
Console.WriteLine("What type of questions would you like to practice?");
Console.WriteLine("Enter a plus sign (+) for addition: ");
Console.WriteLine("Enter an asterisk (*) for multiplication:");
Console.WriteLine("Enter a forward slash (/) for division");
Console.WriteLine("Enter a hyphen (-) for subtraction:");
operation = Console.ReadLine();
if (operation.Equals("+"))
Console.WriteLine("You chose Addition");
Console.WriteLine("How many problems would you like to do?");
numProblems = int.Parse(Console.ReadLine());
for (int i = 0; i < numProblems; i++)
Console.WriteLine($"{num1} + {num2}");
correctAnswer = num1 + num2;
answer = int.Parse(Console.ReadLine());
if (correctAnswer == answer)
Console.WriteLine("That is correct.");
else if (correctAnswer != answer)
Console.WriteLine("That is incorrect.");
percentCorrect = (numCorrect / numProblems) * 100;
Console.WriteLine($"Number of Questions Answered: {numProblems}");
Console.WriteLine($"Number of problems correct: {(int)numCorrect}");
Console.WriteLine($"Number of problems incorrect: {numIncorrect}");
Console.WriteLine($"Percent correct: {percentCorrect}%");
else if (operation.Equals("*"))
Console.WriteLine("You chose Multiplication");
operation = "Multiplication";
Console.WriteLine("How many problems would you like to do?");
numProblems = int.Parse(Console.ReadLine());
for (int i = 0; i < numProblems; i++)
Console.WriteLine($"{num1} * {num2}");
correctAnswer = num1 * num2;
answer = int.Parse(Console.ReadLine());
if (correctAnswer == answer)
Console.WriteLine("That is correct.");
else if (correctAnswer != answer)
Console.WriteLine("That is incorrect.");
percentCorrect = (numCorrect / numProblems) * 100;
Console.WriteLine($"Number of Questions Answered: {numProblems}");
Console.WriteLine($"Number of problems correct: {(int)numCorrect}");
Console.WriteLine($"Number of problems incorrect: {numIncorrect}");
Console.WriteLine($"Percent correct: {percentCorrect}%");
else if (operation.Equals("/"))
Console.WriteLine("You chose Division");
Console.WriteLine("How many problems would you like to do?");
numProblems = int.Parse(Console.ReadLine());
for (int i = 0; i < numProblems; i++)
num1 = random.Next(0, 13);
num2 = random.Next(0, 13) * num1;
num1 = random.Next(0, 13);
correctAnswer = num2 / num1;
Console.WriteLine($"{num2} / {num1}");
answer = int.Parse(Console.ReadLine());
if (correctAnswer == answer)
Console.WriteLine("That is correct.");
else if (correctAnswer != answer)
Console.WriteLine("That is incorrect.");
percentCorrect = (numCorrect / numProblems) * 100;
Console.WriteLine($"Number of Questions Answered: {numProblems}");
Console.WriteLine($"Number of problems correct: {(int)numCorrect}");
Console.WriteLine($"Number of problems incorrect: {numIncorrect}");
Console.WriteLine($"Percent correct: {percentCorrect}%");
else if (operation.Equals("-"))
Console.WriteLine("You chose Subtraction");
operation = "Subtraction";
Console.WriteLine("How many problems would you like to do?");
numProblems = int.Parse(Console.ReadLine());
for (int i = 0; i < numProblems; i++)
Console.WriteLine($"{num1} - {num2}");
correctAnswer = num1 - num2;
answer = int.Parse(Console.ReadLine());
if (correctAnswer == answer)
Console.WriteLine("That is correct.");
else if (correctAnswer != answer)
Console.WriteLine("That is incorrect.");
percentCorrect = (numCorrect / numProblems) * 100;
Console.WriteLine($"Number of Questions Answered: {numProblems}");
Console.WriteLine($"Number of problems correct: {(int)numCorrect}");
Console.WriteLine($"Number of problems incorrect: {numIncorrect}");
Console.WriteLine($"Percent correct: {percentCorrect}%");
if (input.Equals("game"))
Console.WriteLine("Select a difficulty:");
Console.WriteLine("Easy - Addition & Subtraction");
Console.WriteLine("Medium - Multiplication & Division");
Console.WriteLine("Hard - All Operations");
difficulty = Console.ReadLine();
difficulty = difficulty.ToLower();
if (difficulty.Equals("easy"))
Console.WriteLine("Addition and Subtraction Selected.");
for (int i = 1; i <= 10; i++)
Console.WriteLine($"Question {i}:");
randomOpp = random.Next(1, 3);
operation = easy[randomOpp - 1];
if (operation.Equals("+"))
Console.WriteLine($"{num1} + {num2}");
correctAnswer = num1 + num2;
answer = int.Parse(Console.ReadLine());
if (correctAnswer == answer)
Console.WriteLine("That is correct.");
else if (correctAnswer != answer)
Console.WriteLine("That is incorrect.");
else if (operation.Equals("-"))
Console.WriteLine($"{num1} - {num2}");
correctAnswer = num1 - num2;
answer = int.Parse(Console.ReadLine());
if (correctAnswer == answer)
Console.WriteLine("That is correct.");
else if (correctAnswer != answer)
Console.WriteLine("That is incorrect.");
percentCorrect = (numCorrect / 10) * 100;
Console.WriteLine($"Number of Questions Answered: {numProblems}");
Console.WriteLine($"Number of problems correct: {(int)numCorrect}");
Console.WriteLine($"Number of problems incorrect: {numIncorrect}");
Console.WriteLine($"Percent correct: {percentCorrect}%");
if (difficulty.Equals("medium"))
Console.WriteLine("Multiplication and Division Selected.");
for (int i = 1; i <= 10; i++)
Console.WriteLine($"Question {i}:");
randomOpp = random.Next(1, 3);
operation = medium[randomOpp - 1];
if (operation.Equals("*"))
Console.WriteLine($"{num1} * {num2}");
correctAnswer = num1 * num2;
answer = int.Parse(Console.ReadLine());
if (correctAnswer == answer)
Console.WriteLine("That is correct.");
else if (correctAnswer != answer)
Console.WriteLine("That is incorrect.");
else if (operation.Equals("/"))
num1 = random.Next(0, 13);
num2 = random.Next(0, 13) * num1;
num1 = random.Next(0, 13);
correctAnswer = num2 / num1;
Console.WriteLine($"{num2} / {num1}");
answer = int.Parse(Console.ReadLine());
if (correctAnswer == answer)
Console.WriteLine("That is correct.");
else if (correctAnswer != answer)
Console.WriteLine("That is incorrect.");
percentCorrect = (numCorrect / 10) * 100;
Console.WriteLine($"Number of Questions Answered: {numProblems}");
Console.WriteLine($"Number of problems correct: {(int)numCorrect}");
Console.WriteLine($"Number of problems incorrect: {numIncorrect}");
Console.WriteLine($"Percent correct: {percentCorrect}%");
if (difficulty.Equals("hard"))
Console.WriteLine("All Operations Selected.");
for (int i = 1; i <= 10; i++)
Console.WriteLine($"Question {i}:");
randomOpp = random.Next(1, 5);
operation = allOperations[randomOpp - 1];
if (operation.Equals("+"))
Console.WriteLine($"{num1} + {num2}");
correctAnswer = num1 + num2;
answer = int.Parse(Console.ReadLine());
if (correctAnswer == answer)
Console.WriteLine("That is correct.");
else if (correctAnswer != answer)
Console.WriteLine("That is incorrect.");
else if (operation.Equals("-"))
Console.WriteLine($"{num1} - {num2}");
correctAnswer = num1 - num2;
answer = int.Parse(Console.ReadLine());
if (correctAnswer == answer)
Console.WriteLine("That is correct.");
else if (correctAnswer != answer)
Console.WriteLine("That is incorrect.");
else if (operation.Equals("/"))
num1 = random.Next(0, 13);
num2 = random.Next(0, 13) * num1;
num1 = random.Next(0, 13);
correctAnswer = num2 / num1;
Console.WriteLine($"{num2} / {num1}");
answer = int.Parse(Console.ReadLine());
if (correctAnswer == answer)
Console.WriteLine("That is correct.");
else if (correctAnswer != answer)
Console.WriteLine("That is incorrect.");
else if (operation.Equals("*"))
Console.WriteLine($"{num1} * {num2}");
correctAnswer = num1 * num2;
answer = int.Parse(Console.ReadLine());
if (correctAnswer == answer)
Console.WriteLine("That is correct.");
else if (correctAnswer != answer)
Console.WriteLine("That is incorrect.");
percentCorrect = (numCorrect / 10) * 100;
Console.WriteLine($"Number of Questions Answered: {numProblems}");
Console.WriteLine($"Number of problems correct: {(int)numCorrect}");
Console.WriteLine($"Number of problems incorrect: {numIncorrect}");
Console.WriteLine($"Percent correct: {percentCorrect}%");