
Поиск максимального ( или минимального ) элемента массива
Алгоритм поиска. Делается предположение, что 1-й элемент массиваmax(min), затем все элементы массива сравниваются с ним. Если во время проверки обнаруживается, что очередной элемент больше (меньше) принятого заmax(min), то этот элемент становится максимальным (минимальным).
Задача 1. В массивеXиз 10 элементов вычислить наибольший элемент массива и его номер.
static void Main(string[] args)
{
int[] X = new int[10]{-5, 6, -8, 2, 4, 9, -7, 4, 1, 0};
// одномерный массив Х из 10 целых чисел
intXmax; // максимальный элемент
intImax; // номер максимального элемента
for (int i = 0; i < 10; i++)
Console.WriteLine("X[" + i + "]=" + X[i]);
Console.WriteLine(); // вывод элементов массива
Xmax=X[0]; // предположение
Imax = 0;
for (int i = 1; i < 10; i++)
if (X[i] > Xmax)
{
Xmax = X[i]; // выявление max
Imax = i;
}
Console.WriteLine("Максимальный элемент: {0} ", Xmax);
Console.WriteLine("Его номер: {0} ", Imax+1);
Console.ReadKey();
}
При выявлении минимального элемента условие > заменяется на < :
if(X[i] <Xmin)
{
Xmin = X[i]; // выявление min
Imin = i; // его номера
}
Поиск заданного элемента массива
Под поиском заданного элемента массива понимается необходимость определить, содержит ли массив определенную информацию или нет. Наиболее простой алгоритм поиска – простой перебор неупорядоченных элементов.
Поиск осуществляется последовательным сравнением элементов массива с образцом до тех пор, пока не будет найден элемент, равный образцу, или пока не будут проверены все элементы.
Для поиска элементов используют операторы цикла for,whileилиdo ...while
Задача2. Найти заданный элемент в массиве и вывести его на экран дисплея.
static
void Main(string[] args)
{
int[] Mas = new int[10]{-5, 6, -8, 2, 4, 9, -7, 4, 1, 0};
// одномерный массив Masиз 10 целых чисел
int obr; // образец для поиска
bool Yes; // признак обнаружения
int i; //счетчик цикла
for (i = 0; i < 10; i++)
Console.WriteLine("Mas[" + i + "]=" + Mas[i]);
Console.WriteLine();
Console.WriteLine("Введите образец для поиска");
obr = Convert.ToInt16(Console.ReadLine());
Yes = false;
i=0;
do
{
if (Mas[ i ]==obr )
{
Yes=true;
break;
}
else i=i+1;
}
while ( i<10 | Yes == true);
if (Yes == true) Console.WriteLine("Имеется
совпадение с элементом {0}. Его индекс: {1}", Mas[i], i );
else Console.WriteLine("Совпадение с образцом отсутствует ");
Console.ReadKey();
}