короче, я с теорией не работаю, поэтому объясню алгоритм более практичней. итак, нам нужно проверить каждый элемент массива и выяснить, является ли он трехзначным числом. какой-то переменной мы присваем значение 1000. и как только мы находим трехзначное число, мы проверяем ниже ли это число той переменной(в первый раз, соответственно да). если ответ положительный, то присваем переменной значение числа, сс которым мы работали и которое, естественно меньше. теперь проверяем дальше трехзначные числа. если они ниже переменной, то присваевам их к этой же переменной. в конце цикла, переменная будет иметь значение минимального 3х знач элемента. если переменная по прежнему равна 1000. значит 3х знач числа не нашлось и мы выводим надпись "таких чисел нет".
если я объяснил не слишком понятно, то покажу на примере:
var a: array [1..30] of real; i,min: real;
begin
{здесь ты сама как-нибудь вводишь элементы цикла. или с файла, либо с вводом}
min: =1000;
for i: =1 to 30 do begin
if (a[i] div 100> 0) and (a[i] div 100< 10) then
if a[i]< min then min: =a[i];
end;
if min< > 1000 then writeln(min) else writeln('таких чисел нет! ')
end.
ну наверно
удачи!
Поделитесь своими знаниями, ответьте на вопрос:
// operations_array.cpp: определяет точку входа для консольного приложения.#include "stdafx.h"#include < iostream> #include < ctime> using namespace std; int main(int argc, char* argv[]){ srand(time(null)); setlocale(lc_all, "rus"); int length_array; cout < < "укажите количество элементов массива: "; cin > > length_array; float *arrayptr = new float [length_array]; // одномерный динамический массив // заполняем одномерный массив случайными числами for (int counter = 0; counter < length_array; counter++) { arrayptr[counter] = - 5.00 + ((rand() % 101) / 10.0); // генерируем случайные числа [-5, 5] cout < < arrayptr[counter] < < " "; // вывод сгенерированного числа } cout < < endl; float min = arrayptr[0]; // инициализируем первым элементом массива int number_min = 0; // номер минимального элемента for (int counter = 0; counter < length_array; counter++) { if (min > arrayptr[counter]) { min = arrayptr[counter]; // минимальный элемент number_min = counter; // номер минимального элемента } } cout < < "номер минимального элемента = " < < (number_min + 1) < < endl; // номер минимального элемента double product = 1; for (int counter = 0; counter < length_array; counter++) { if (arrayptr[counter] < 0) // находим первое отрицательное число { counter++; // переключаемся на следующий элемент while (arrayptr[counter] > 0) // пока не нашли второе отрицательное число { product *= arrayptr[counter]; // накапливаем произведение элементов counter++; } break; // выход из цикла for } } cout < < "произведение = " < < product < < endl; float *relocation_arrayptr = new float [length_array]; // одномерный динамический массив для перестановок int index = 0; // индекс массива перестановок // заполняем массив элементами, модуль которых не превышает 1 for (int counter = 0; counter < length_array; counter++) { if (abs(arrayptr[counter]) < = 1) { relocation_arrayptr[index] = arrayptr[counter]; index++; } } // заполняем массив элементами, модуль которых больше 1 for (int counter = 0; counter < length_array; counter++) { if (abs(arrayptr[counter]) > 1) { relocation_arrayptr[index] = arrayptr[counter]; index++; } } // напечатать преобразованный массив cout < < "\nпреобразованный массив: \n"; for (int counter = 0; counter < length_array; counter++) { cout < < relocation_arrayptr[counter] < < " "; } cout < < endl; // высвобождение памяти отводимой под одномерный динамический массив: delete [] arrayptr; delete [] relocation_arrayptr; system("pause"); return 0;