Арифметическая операция с c#
Random rnd = new Random();
Console.Write("Введите имя первого игрока- ");
string one = Console.ReadLine();
Console.Write("Введите имя второго игрока- ");
string two = Console.ReadLine();
int bet=1;
int sum,sum2;
do {
Console.WriteLine($"\nПодход {bet}");
Console.Write("Ход первого игрока- ");
int a=rnd.Next(1,7);
int b=rnd.Next(1,7);
sum=a+b;
Console.Write(sum);
Console.Write("\nХод второго игрока- ");
a=rnd.Next(1,7);
b=rnd.Next(1,7);
sum2=a+b;
Console.Write(sum2);
++bet;
} while (bet < 4);
int go = sum+sum+sum;
int go1 = sum2+sum2+sum2;
if (go > go1) {
Console.WriteLine($"\nВыиграл {one} со счетом {go}:{go1}");
} else if (go1 > go) {
Console.WriteLine($"\nВыиграл {two} со счетом {go1}:{go}");
} else {
Console.WriteLine("\nНичья");
}
Здравствуйте, только начал изучать c#. Как правильно написать чтобы не выводил арифметическую ошибку

Ответы (1 шт):
Автор решения: DanBear
→ Ссылка
Пытался не очень сильно переписывать Вашу программу. Исправив проблему и кое-что убрав, я получил такой код:
Random rnd = new Random ();
Console.Write ("Введите имя первого игрока- ");
string one = Console.ReadLine ();
Console.Write ("Введите имя второго игрока- ");
string two = Console.ReadLine ();
int bet = 1;
int sum = 0, sum2 = 0;
do {
Console.WriteLine ($"\nПодход {bet}");
Console.Write ("Ход первого игрока- ");
int a = rnd.Next (2, 13);
sum += a;
Console.Write (a);
Console.Write ("\nХод второго игрока- ");
int b = rnd.Next (2, 13);
sum2 += b;
Console.Write (b);
++bet;
} while (bet < 4);
if (sum > sum2)
Console.WriteLine ($"\nВыиграл {one} со счетом {sum}:{sum2}");
else if (sum2 > sum)
Console.WriteLine ($"\nВыиграл {two} со счетом {sum2}:{sum}");
else
Console.WriteLine ("\nНичья");
- У Вас в sum записывается сума двух рандомных чисел. Я заменил это на получение одного рандомного числа, так как смысла в двух нет;
- В конце Вы суммируете 3 раза sum, но у Вас остаётся только последнее значение этой переменной, а именно последний ход первого игрока (тоже самое у второго). Таким образом Вы просто умножаете последние результаты на 3 (6*3=18 и 5*3=15), вместо суммирования всех предыдущих результатов. Я заменил go на sum и в него добавляю результаты каждого раунда. Проблема решена.