Здраствуйте, получается ошибка такова, когда больше 2 ложных суждений код неправильно начинает работать. Нужна помощь - вопрос №4615850

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
class Program
{

static void Main(string[] args)
{

{
int otv = 0;
int a = 0;
while (true)
{

Console.Write(«2 * 1 =»);

otv = Convert.ToInt16(Console.ReadLine());
if (otv == 2)
a = a + 1;
else
a = +0;
Console.Write(«2 * 2 =»);

otv = Convert.ToInt16(Console.ReadLine());
if (otv == 4)
a = a + 1;
else
a = +0;

Console.Write(«2 * 3 =»);

otv = Convert.ToInt16(Console.ReadLine());
if (otv == 6)
a = a + 1;
else
a = +0;
Console.Write(«2 * 4 =»);

otv = Convert.ToInt16(Console.ReadLine());
if (otv == 8)
a = a + 1;
else
a = +0;
Console.Write(«2 * 5 =»);

otv = Convert.ToInt16(Console.ReadLine());
if (otv == 10)
a = a + 1;
else
a = +0;
Console.Write(«2 * 6 =»);

otv = Convert.ToInt16(Console.ReadLine());
if (otv == 12)
a = a + 1;
else
a = +0;
Console.Write(«2 * 7 =»);

otv = Convert.ToInt16(Console.ReadLine());
if (otv == 14)
a = a + 1;
else
a = +0;
Console.Write(«2 * 8 =»);

otv = Convert.ToInt16(Console.ReadLine());
if (otv == 16)
a = a + 1;
else
a = +0;
Console.Write(«2 * 9 =»);

otv = Convert.ToInt16(Console.ReadLine());
if (otv == 18)
a = a + 1;
else
a = +0;
Console.Write(«2 * 10 =»);

otv = Convert.ToInt16(Console.ReadLine());
if (otv == 20)
a = a + 1;
else
a = +0;

Console.WriteLine(«Сумма баллов» + " " + a);

Console.Write(«Оценка:»);
if (a > 7)
Console.WriteLine(«Хорошо»);

else
Console.WriteLine(«Плохо»);

Console.ReadLine();
18.01.22
1 ответ

Ответы

a = +0; — Что за дурацкая запись и зачем вообще нужна?
Достаточно
if (otv == НужноеЧисло)
a = a + 1; без else части. Тогда должно работать как надо.
02.05.22
Посмотреть всех экспертов из раздела Технологии > .Net/C#
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store