Помогите, пожалуйста, исправить ошибки
Задание: Даны два числа. Определите цифры, которые входят как в первый так и второго числа.
Выдает ошибки:
Использование локальной переменной "d", которой не присвоено значение.
Левая часть выражения присваивания должна быть переменной, свойством или индексатором.
class Program
{
static void Main(string[] args)
{
int a, k,b;
String d;
Console.WriteLine("Vvod a");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Vvod b");
b = Convert.ToInt32(Console.ReadLine());
k = b;
while(k>0)
{
if (k % 10 = d)
Console.WriteLine(d, ' ');
}
k= k / 10;
Console.ReadKey();
}
}
В ошибке вам очень подробно все описали.
Когда вы пишите String d; вы объявляете переменную, но еще не говорите, что там есть(не присвоили значение). Т.е вы назвали имя человека, но человека с таким именем нет. Если вы позовете человека по имени, то никто не откликнется. Ибо вы объявили об и только.
В вашем коде есть другой случай(выше строчки 1) int a,k,b;
Тут вы тоже объявляете 3 переменных, но не присваиваете значение, но перед тем как использовать вы пишите эту строчку a = Convert.ToInt32(Console.ReadLine());. В этой строчке вы присваиваете переменной a значение, которое получите справа от знака =(т.е из выражения).
После того, как это строчка сработает, в переменной а у вас уже наконец что-то есть. Т.е есть и имя и человек(по аналогии).
Дальше на строчке 2 вы пытаетесь использовать переменную d в условии. Заметьте, не присвоить ей значение, а уже использовать. Во первых делаете это вы не правильно
Вместо
if(k % 10 = d)
Надо
if(k % 10 == d)
В первом случае это оператор присваивания, во втором случае оператор сравнения(слева в списке найдете эти 2 оператора) https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/
Вот вам и ошибка. Вы объявили переменную, не присвоили ей значение и пытаетесь по имени получить значение. А значения то нет.
P.S. Есть еще вероятность, что вы d с b , но дальше в строчке Console.WriteLine(d, ' '); вам все равно нужна переменная d.
В строке 2, как написал @Igor вы пытаетесь число со строкой сравнить. Это выглядит нелогично. Вы же не можете сравнить цифру 1 и слово "чебурек"?
Получает вы задаете вопрос: а равна ли цифра 1 "чебуреку"? И что вам нужно на это ответить?
if (k % 10 = d)
Если тут должна быть операция сравнения, то это ==, а 'd' не присвоено никакого значения.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости