Ура! Давайте делать домашнее задание! : -)
using System;
using System.Linq;
namespace HomeWork
{
class Program
{
public static int ReadInt()
{
int result;
string zc;
while (!int.TryParse(zc = Console.ReadLine(), out result))
{
Console.Write($"The value {zc} is invalid. Try again! ");
}
return result;
}
public static int[] AskFiveZipCodes()
{
var result = new int[5];
for (var i = 0; i < 5; i++)
{
bool isNotValid;
do
{
Console.Write($"Please enter ZIP code {i + 1}: ");
result[i] = ReadInt();
isNotValid = result[i].ToString().Length != 5;
if (isNotValid) { Console.WriteLine($"A ZIP code needs to be 5 digits! You entered {result[i]}."); }
}
while (isNotValid);
}
return result;
}
static void Main(string[] args)
{
var fiveZipCodes = AskFiveZipCodes();
Array.Sort(fiveZipCodes);
Console.WriteLine("All ZIP codes: " + string.Join(", ", fiveZipCodes.Select(z => z.ToString())));
int zipCode;
do
{
Console.Write($"Please enter ZIP code to check: ");
if ((zipCode = ReadInt()) == 0) { continue; }
int index;
Console.Write($"The value {zipCode} is ");
Console.WriteLine((index = Array.BinarySearch(fiveZipCodes, zipCode)) < 0 ? "not found." : $"at index {index}. ");
}
while (zipCode != 0);
Console.Write($"Game over!");
}
}
}
Я должен предупредить вас. Если вы принесете этот код своему учителю, вас попросят объяснить, как он работает. И я видел код, который вы вставили. Вы не сможете объяснить, почему это работает, но все же работает!
Итак, у вас есть два варианта. Либо сделайте свою домашнюю работу самостоятельно, либо попытайтесь выяснить, что делает мой код и почему он работает. (И я мог бы сделать это немного более продвинутым, но позволил себе написать всего 10 минут.)
Для меня эти домашние вопросы - это весело, и есть хороший шанс, что даже ваш учитель будет немного смущенэтот кодНо, используя Visual Studio с .NET Core 3.1, он должен хорошо компилироваться.
Код на самом деле не такой сложный, но я должен был следовать ограничениям этого упражнения. В нем есть несколько хитростей, которые определенно запутают людей. Как часть if ((zipCode = ReadInt()) == 0) { continue; }
.
Итак, я сделал твою домашнюю работу. Жаль, что твой учитель никогда не поверит, что ты это написал. Но для вас и для них это определенно интересно исследовать. Покажите им это, сказав, что кто-то написал это для вас. (Они не будут возражать против этого!)