-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
96 lines (89 loc) · 3.76 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
// Задача:
// написать программу, которая из имеющегося массива строк
// формирует массив из строк, длина которых меньше
// либо равна 3 символам.
// Первоначальный массив можно ввести с клавиатуры,
// либо задать на старте выполнения алгоритма.
// Примеры:
// ["hello","2","world",":-)",]->["2",":-)"]
// ["1234","1567","-2","computer scince"]->["-2"]
// ["Russia","Denmark","Kazan"]->[]
// Решение:
// уточняю размер искомого массива
int SearchValidSizeArray(string[] fullArray, int lengthElement)
{
string[] validArray = new string[fullArray.Length];
int countEmptyElement = 0;
int validSizeArray = fullArray.Length;
for (int i = 0; i < fullArray.Length; i++)
{
string currentElement = fullArray[i];
if (currentElement.Length > lengthElement)
countEmptyElement++;
}
validSizeArray -= countEmptyElement;
if (validSizeArray == 0) validSizeArray++;
return validSizeArray;
}
// формирую массив из строк, длина которых меньше либо равна заданному количеству символов
string[] GetLimitLengthElementArray(string[] fullArray, int lengthElement, int sizeArray)
{
string[] resultArray = new string[sizeArray];
string element = string.Empty;
int count = 0;
for (int i = 0; i < resultArray.Length; i++)
{
for (int j = count; j < fullArray.Length; j++)
{
string currentElement = fullArray[j];
if (currentElement.Length <= lengthElement)
{
element = currentElement;
count = j;
break;
}
else count += j;
}
resultArray[i] = element;
count++;
}
return resultArray;
}
// вывожу масивы на экран (использую формат из примеров задачи)
void PrintArray(string[] array)
{
Console.Write("[");
for (int i = 0; i < array.Length - 1; i++)
{
Console.Write($"{array[i]},");
}
Console.Write($"{array[array.Length - 1]}]");
}
// метод ввода первоначального массива с клавиатуры
string[] UserEntersArray()
{
Console.Write("Укажите сколько строк Вы хотите ввести: ");
int countString = Convert.ToInt32(Console.ReadLine());
string[] newArray = new string[countString];
if (countString <= 0) Console.WriteLine("Попробуйте снова, когда захотите что-нибудь ввести!");
else
{
for (int i = 0; i < countString; i++)
{
Console.Write($"Введите строку №{i + 1}: ");
newArray[i] += Console.ReadLine();
}
}
return newArray;
}
// массивы из примеров задачи
// string[] userArray = { "Russia", "Denmark", "Kazan" };
// string[] userArray = { "hello", "2", "world", ":-)" };
// string[] userArray = { "1234", "1567", "-2", "computer scince" };
int lengthString = 3; // количество символов в строках искомого массива (из условия задачи = 3)
string[] userArray = UserEntersArray();
Console.WriteLine($"Ниже [введенные Вами строки] и [строки, длина которых меньше либо равна {lengthString} символам]:");
PrintArray(userArray);
Console.Write("->");
int validSizeArray = SearchValidSizeArray(userArray, lengthString);
PrintArray(GetLimitLengthElementArray(userArray, lengthString, validSizeArray));