Опубликован: 14.12.2010 | Уровень: для всех | Доступ: свободно
Лекция 6:
Числовые массивы в языке программирования С
Задание 1
- Границы формирования случайных чисел и размерность массива задайте без препроцессорных директив.
- Произведите сортировку массива случайных чисел по убыванию.
- Введите границы интервала формирования случайных чисел по правилу: Left = X, Right = 3*X, где Х – номер компьютера, за которым выполняется лабораторная работа. Произвести сортировку по убыванию.
- Найдите и изучите сортировку методом прямого обмена (сортировка методом пузырька). Напишите программу формирования одномерного массива случайными числами и их сортировки методом пузырька.
Пример 2. Напишите программу поиска максимального элемента в заданном одномерном массиве. Элементы массива являются целыми числами. Программный код решения примера:
#include <stdio.h>
#include <conio.h>
int main (void){
int i, size, max;
int A[ ] = {3, 5, 2, 8, 12, 0, -7, -3, -21};
size = sizeof(A)/sizeof(A[0]);
printf("\n\t The dimention of the array A is equal to: %d\n", size);
max = A[0]; // Предполагаемый максимум
for (i = 0; i < size; ++i)
if (A[i] > max) max = A[i];
printf("\n\t Maximum array element: %d\n", max);
printf("\n\n Press any key: ");
_getch();
return 0; }В программе использована инициализация безразмерного массива и определения его размерности с помощью функции sizeof().
Результат выполнения программы показан на рис. 5.2.
Задание 2
- В программе предусмотрите вывод на консоль значений массива в виде строки.
- Определите индекс максимального элемента.
- Определите минимальный элемент массива и его индекс.
- Напишите программу перемещения максимального и минимального элементов на края массива. Например, максимальный элемент поместить в конец массива, а минимальный – в начало массива. Выведите на консоль исходный массив данных и преобразованный массив в виде двух строк, следующих друг за другом.
- Напишите программу ввода целых чисел массива с клавиатуры и определения максимального и минимального элементов в нем. Количество вводимых чисел задается по соотношению 5*Х, где Х – номер компьютера, за которым выполняется лабораторная работа.
Пример 3. Напишите программу циклической перестановки чисел заданного массива так, чтобы i -e число стало ( i +1)-м, а последнее число – первым. Выведите на дисплей исходный массив и преобразованный.
Программный код решения примера:
#include <stdio.h>
#include <conio.h>
#define N 55
int main (void) {
int i, j, k;
double D[ ] = {1.23, 2.34, 3.45, 4.56, 5.67, 6.78};
double B[N]; // Заведомо больший размер, чем у массива D
// Обнуление массива и выделение памяти для него
for (i = 0; i < N; ++i)
B[i] = 0.0;
k = sizeof(D)/sizeof(D[0]);
B[0] = D[k-1];
for (i = 0; i < (k - 1); ++i)
B[i+1] = D[i];
printf("\n\t The original array:\n");
for (i = 0; i < k; ++i)
printf("%8.2f", D[i]);
printf("\n\n\t The reconfigured array:\n");
for (j = 0; j < k; ++j)
printf("%8.2f", B[j]);
printf("\n\n Press any key: ");
_getch();
return 0;
}Результат выполнения программы показан на рис. 5.3.
Задание 3
- Выведите на дисплей (для проверки) два элемента массива В, номера которых превышают размерность массива D.
- Программным путем подсчитайте сумму элементов массива и выведите ее на консоль.
- Дополните программу формированием массива, в котором элементы расположены в обратном порядке, чем в исходном массиве.
- Сформируйте массив кодов строчных букв латинского алфавита. Выведите на дисплей сами буквы и их коды, которые являются элементами массива.

