- •Общие сведения о массивах
- •Алгоритмы инициализации значений элементов массива
- •Инициализации значений элементов массива постоянными значениями
- •Ввод и вывод значений элементов массивов
- •Ввод значений элементов одномерного массива
- •Вывод значений элементов одномерного массива
- •Тестовая программа ввода и вывода одномерного массива
- •Int k; // Текущий предельный размер массива
- •Ввод значений элементов двухмерного массива
- •Вывод значений элементов двухмерного массива
- •Алгоритмы пересылки массивов
- •Пересылка двухмерного массива в одномерный массив
- •Пересылка одномерного массива в двухмерный массив
- •Простые алгоритмы работы с массивами
- •Алгоритм нахождения суммы и среднего арифметического значений элементов одномерного массива
- •Алгоритм нахождения суммы и среднего арифметического значений элементов двухмерного массива
- •Поиск элемента с максимальным и минимальным значениями
- •Поиск в массиве элемента с заданным значением
- •Алгоритм инициализации элементов одномерного массива значениями ряда целых нечетных чисел
- •Формирование единичной матрицы
- •Табуляция функции в массив
- •Организация стека при помощи массива
- •Организация очереди при помощи массива
-
Поиск в массиве элемента с заданным значением
Рассматриваемый алгоритм находит только первое вхождение элемента с заданным значением. Результат поиска может быть как удовлетворительным, так и не удовлетворительным, например, при отсутствии в массиве элемента с искомым значением. Цикл поиска искомого элемента кодируется структурой УНИВЕРСАЛЬНОГО ЦИКЛА ДО. Наглядный тест:
Рассмотрим текст готовой программы.
#include "stdafx.h"
#include <conio.h>
#include <locale.h>
#define k_Max 100 // Предельный размер массива
int _tmain(int argc, _TCHAR* argv[])
{
//Программа поиска заданного значения в одномерном массиве
typedef int Type_Elements_a; //Тип элементов массива a
typedef Type_Elements_a Type_a[k_Max]; //Тип массива a
Type_a a; //Сам массив a, котором идет поиск
int k; //Текущий предельный размер массива
int s; //Искомое значение в массиве
int is; //Индекс найденного элемента массива
bool Done; //= True, если поиск успешен
int i; //Переменная цикла поиска
setlocale( LC_ALL, "russian" ); //установка русского режима
printf("Программа поиска заданного значения в ");
printf("одномерном массиве\n");
printf("\nВведите количество элементов вводимого массива\n");
scanf("%d",&k); //k теперь определено
printf("\n");
// Задание i - номера вводимого элемента массива
for (int i = 0; i < k; i++)
{
printf("Введите значение элемента номер %d) ",i);
scanf("%d",&a[i]);
}
printf("\nВведите значение искомого элемента\n");
scanf("%d",&s);
// Поиск значения s в массиве a */
Done = false; //Искомый элемент пока не найден
i = 1; //Инициализация переменной цикла
//Цикл поиска вхождения значения в массив
do {
if (a[i] == s)
{
is = i; //Запоминание индекса найденного элемента
Done = true; //Выработка признака - элемент найден
}
i++; //Индекс следующего элемента i = i + 1;
} while (!(((i > k) || (Done))));
//Вывод на экран результатов поиска
if (Done)
{
printf("\nВ массиве найдено искомое значение, равное: ");
printf("%d", s);
printf("\nискомое значение имеет номер %d", is);
}
else
printf("В массиве нет искомого значения, равного: %d", s);
//Завершение выполнения программы
printf("\nНажмите любую клавишу\n");
_getch();
return 0;
}
-
Алгоритм инициализации элементов одномерного массива значениями ряда целых нечетных чисел
Далее показан алгоритм инициализации элементов одномерного массива значениями ряда целых нечетных чисел a[0] = 1, a[1] = 3, a[2] = 5, . . . . Ряд нечетных чисел представляет собой арифметическую прогрессию с начальным значение 0 и шагом 2
int k = 20; //Текущее количество элементов массива a
//Инициализация всех элементов массива a значениеми
//ряда целых нечетных чисел a[0] = 1, a[1] = 3, a[2] = 5,. . }
int ix = 1.0; //{Начальное значение арифметической прогрессии}
//Задание i – номера инициализируемого элемента массива
for (int i = 0; i<k; i++)
{
//Инициализация очередного i-го элемента
a[i] = ix;
//Расчет значения следущего члена арифметической прогрессии
ix = ix + 2; //Расчет следующего члена
}
Обратим внимание на то, что для инициализации элементов одномерного массива значениями ряда целых четных чисел a[0]=2, a[1]=4,a[2]=6,…требуется лишь исправить отдельные комментарии и заменить 1 на 2 в операторе определения начального значения арифметической прогрессии.