Определить индексы элементов массива, значение которых лежит в указанном пределе

Задача

 

В массиве определить индексы элементов, значение которых не меньше заданного минимума и не больше заданного максимума.

Это очень простая задача, если не требуется сохранять индексы элементов, а просто вывести их на экран. Ее можно немного усложнить, если задать условие сохранения в программе индексов найденных элементов и определение их общего количества. В таком случае потребуется ввести еще один массив.

 

Решение

 

Описание переменных: 

arr - исследуемый массив;
id - массив индексов элементов массива arr, значение которых лежит в определенных пределах;
min, max - нижняя и верхняя граница диапазона;
m - количество найденных элементов.

Алгоритм решения задачи: 

  1. генерируем массив случайных чисел и выводим его на экран;
  2. запрашиваем у пользователя нижнюю и верхнюю границы поиска;
  3. перебирая массив, если значение очередного элемента больше или равно минимуму и меньше или равно максимуму, то помещаем его индекс в массив id;
  4. выводим общее количество найденных элементов и их индексы в массиве arr, сохраненные в массиве id.

Программа на языке Паскаль: 

 

const n = 100;
var	
	arr: array[1..n] of integer;
	id: array[1..n] of byte;
	min, max: integer;
	i, m: byte;
begin
	randomize;
	for i:=1 to n do begin
		arr[i] := random(200) + 1;
		write(arr[i]:4);
		if i mod 20 = 0 then writeln;  // new line
	end;
	write('Min: '); readln(min);
	write('Max: '); readln(max);
	m := 0;
	for i:=1 to n do
		if (arr[i] >= min) and (arr[i] <= max) then begin
			m := m + 1;
			id[m] := i;
		end;
	writeln('Total: ', m);
	write('Id: ');
	for i:=1 to m do
		write(id[i],' ');
	writeln;
end.

 

Примеры выполнения кода:

  71 163  45 120  39 105  56 149  15 193 163  83  84 175 186  44   2 196  22 102
 156  92  58 180   6 154  26 104 142 184 157 121 103 179 188  36 188 125 127 172
  58  62 183 135  28  35   9  87 157  51 132  56  96 114  84  70  30 182 109 146
 139 173  37 177  91 108  23  84  95  13  24   6   1 155  80 194  18 104 139  43
 152 134 195 101 104 200 179  82 156 114  42   7 164  97 180  64  19 151  82  17
Min: 60
Max: 80
Total: 5
Id: 1 42 56 75 96 

 

 

  92  11  44 110  19  27 196  72 135  82 119 150 157  91   4  42 147  22 139 168
 187 131  15 151 183 175  95 109 130 172  71  96 125  96 166  29  87 126  30  17
  15  31 137 164 149  33  48 194  55  68 193  17  14  38 152 197 184 166  44  96
 194 175 154  56  63  24 103 137 166  90  65  95  31 107  61  51 153 171 119  97
  46  67 171  46 197 126 100  10 193 184  60 160 155 134  13 168 168 138  15 165
Min: 40
Max: 120
Total: 35
Id: 1 3 4 8 10 11 14 16 27 28 31 32 34 37 47 49 50 59 60 64 65 67 70 71 72 74 75 76 79 80 81 82 84 87 91

 

Тема

Одномерные массивы

Уровень

Простые задачи

Добавить комментарий