Спасибо за все ответы, это действительно помогло мне!Код не может рассчитывать процент
Но я столкнулся с новой проблемой ... В программе, которую я пишу, пользователю предлагается ввести ответы на разные математические вопросы, и консоль после каждого вопроса скажет, соответствуют ли ответы правильные или неправильные. И в конце программа покажет, сколько ответов пользователей было правильным в процентах, это было, если я столкнулся с проблемой.
Console.Write("How many questions would you like to answer (Maximum value is '100'): ");
string input = Console.ReadLine();
int questionsAmount = int.Parse(input);
int correctAnswers = 0;
int IncorrectAnswers = 0;
for (int i = 1; i <= questionsAmount; i++)
{
Console.WriteLine("===================");
Console.WriteLine("Question " + i);
Console.WriteLine();
Random rnd = new Random();
int rndNumber = rnd.Next(1, 100);
int rndNumber2 = rnd.Next(1, 100);
Console.Write("What equals " + rndNumber + " + " + rndNumber2 + " = ");
string input2 = Console.ReadLine();
int answer = int.Parse(input2);
if (answer == rndNumber + rndNumber2)
{
correctAnswers++;
Console.WriteLine("Answer correct.");
Console.WriteLine("Correct answers: " + correctAnswers);
}
else
{
IncorrectAnswers++;
Console.WriteLine("Answer incorrect.");
Console.WriteLine("Incorrect answers: " + IncorrectAnswers);
}
}
double percentage = correctAnswers/questionsAmount * 100;
Console.WriteLine(percentage + "% of your answers was correct");
Как вы видите, когда все вопросы были даны ответы будет вычислить процент, но так как я присвоил переменную «correctAnswers» в значение «0», то расчет будет выглядеть следующим образом: 0/x * 100 = 0
Если я поставил переменные «правильные» и «неправильные» в пределах for-statement
, линия double percentage = correctAnswers/questionsAmount * 100;
не будет работать.
Параметр 'примерку catch' это хорошо, это ваша логика цикла, который не – MickyD
обработки исключений может быть намного хуже, чем используя 'goto'. Именно здесь вы полностью потеряли контроль над потоком программы и больше не понимаете, как работает ваша программа.Обработка исключения должна быть исключительной, нет ничего особенного в том, что пользователь вводит неверные данные. Поэтому не используйте исключения, вместо этого используйте 'int.TryParse()'. –