Создать программу c#
Напишите программу в с#, которая получает три числа и выводит количество одинаковых чисел в этой цепочке.
Пример 1:
Введите три числа:
1 1 1
Все числа одинаковые.
Пример 2:
Введите три числа:
1 2 1
Два числа одинаковые.
Пример 3:
Введите три числа:
1 2 3
Нет одинаковых чисел.
class Program
{
static void Main(string[] args)
{
int a, b, c;
a = Convert.ToInt32(Console.Read());
b = Convert.ToInt32(Console.Read());
c = Convert.ToInt32(Console.Read());
if (a == b && c == a)
Console.WriteLine(2);
else if (a == b)
{ Console.WriteLine(3); }
else if (b == c)
{ Console.WriteLine(2); }
else if (a == c)
{ Console.WriteLine(3); }
else
Console.WriteLine(0);
Console.ReadKey();
}
}
Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
a = Convert.ToInt32(Console.Read());
Console.Read() читает не слово, а символ. Ты код этого символа перегоняешь из числа в число - дело бесполезное.
Читай всю строку и сплить её на слова:
var arr = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries)
можно сразу превратить в числа с помощью int.Parse.
А дальше советую продолжать работать с массивом, а не с 3 переменными.
using System;
using System.Linq;
public class Test
{
public static void Main()
{
Console.WriteLine
(
Console.ReadLine()
.Split(" ", StringSplitOptions.RemoveEmptyEntries)
.Select(int.Parse)
.Distinct()
.Count()
);
}
}
Исходный ответ:
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine(args.Take(3).Select(int.Parse).Distinct().Count());
}
}