Top.Mail.Ru
Ответы

Помогите найти ошибку C#

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

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите 18-ти значное число");
long n = Int64.Parse(Console.ReadLine());
Console.WriteLine("Введите число на которое отличаются соседние цифры");
long m = Int64.Parse(Console.ReadLine());
//-----Ввод данных и решение задачи --------------
int kol = 0;
int k = 0;

do
{
Console.WriteLine("Выберите используемую алгоритмическую конструкцию");
Console.WriteLine("(1 — с предусловием, 2— с постусловием, 3— с известным числом повторений) ");
k = Int32.Parse(Console.ReadLine());
switch (k)
{
case 1: while (n > 0)
{
long a1 = n % 10;
long a2 = (n / 10) % 10;
long z = Math.Abs(a1 - a2);
Console.WriteLine(" рассм цифры " + a1 + " и " + a2);
if (z = m) { kol = kol + 1; }
n = n / 10;
}
break;
case 2: do
{

long a1 = n % 10;
long a2 = (n / 10) % 10;
long z = Math.Abs(a1 - a2);
Console.WriteLine(" рассм цифры " + a1 + " и " + a2);
if (z = m) { kol = kol + 1; }
n = n / 10;
} while (n > 0);
break;
case 3: for (int i = 1; i <= 18; i++)
{

long a1 = n % 10;
long a2 = (n / 10) % 10;
long z = Math.Abs(a1 - a2);
Console.WriteLine(" рассм цифры " + a1 + " и " + a2);
if (z = m) { kol = kol + 1; }
n = n / 10;
} break;
default: Console.WriteLine("Символ введен неправильно. Повторите выбор. ");
break;
}
} while (!(k >= 1 && k <= 3));
//--------Вывод результата ------------------------
Console.WriteLine(" Количество " + kol);
Console.ReadKey();
}
}
}

Вот в этом месте if (z = m) { kol = kol + 1; } говорит, что неявное преобразование типа bool в long

По дате
По рейтингу
Аватар пользователя
Профи
11лет

не наверное, а точно в c#
== - сравнение (равно)
!= - сравнение (неравно)

Аватар пользователя
Ученик
11лет

Спасибо)

Аватар пользователя
Ученик
11лет

'=' - присваивание, а '==' - булево равенство, наверное должно быть '=='

Аватар пользователя
Ученик
11лет

Спасибо)



Видео по теме