Массивы
Работа из раздела: «
Цифровые устройства»
B.I.Березін,С.Б.Березін(С.83) МАСИВИ І ПОКАЖЧИКИ
Раніше ми ввели типи даних в мові С, які називаються іноді базовими або
вбудованими. На основі цих типів даних мова С дозволяє будувати інші типи
даних і структури даних. Масив - один з найбільш простих і відомих структур
даних. Під масивом в мові С розуміють набір даних одного і того ж типу,
зібраних під одним ім'ям. Кожний елемент масиву визначається ім'ям масиву і
порядковим номером елемента, який називається індексом. Індекс в мові С
завжди ціле число.
ОГОЛОШЕННЯ МАСИВУ В ПРОГРАМІ
Основна форма оголошення масиву розмірності N така:
тип <ім'я масиву>[размер1][размер2]...[размерН]
Частіше за все використовуються одновимірні масиви:
тип <ім'я масиву> [розмір] ;
тип - базовий тип елементів масиву, розмір - кількість елементів
одновимірного масиву.
При описі двовимірного масиву оголошення має наступний вигляд:
тип <ім'я масиву> [размері][размер2];
У цьому описі можна трактувати оголошення двовимірного масиву як
оголошення масиву масивів, т. е. масив розміру [размер2], елементами якого
є одновимірні масиви <ім'я масиву>[размер1].
Розмір масиву в мові С може задаватися константою або константним
виразом. Не можна задати масив змінного розміру. Для цього існує окремий
механізм, званий динамічним виділенням пам'яті.
ОДНОВИМІРНІ МАСИВИ
У мові С індекс завжди починається з нуля. Коли ми говоримо про перший
елемент масиву, то маємо на увазі елемент з індексом 0. Еслі ми оголосили
масив
int a[100] ;
це означає, що масив містить 100 елементів від а[0] до а[99]. Для
одновимірного масиву легко підрахувати, скільки байт в пам'яті буде займати
цей масив:
кільк.байтів=<розмір базового типу>*<кільк.елементів>.
У мові С під масив завжди виділяється безперервне місце в оперативній
пам'яті.
У мові С не перевіряється вихід індексу за межі масиву. Якщо масив
а[100] описаний як цілочисельний масив, що має 100 елементів, а ви в
програмі вкажете а[200], то повідомлення про помилку не буде видане, а як
значення елемента а[200] буде видано деяке число, що займає відповідні 2
байти. Можна визначити масив будь-якого визначеного раніше типу, наприклад
unsigned arr[40], long double al[1000], char ch[80].
|/*поміняти місцями max з min*/ |// Сортування і програвання масиву |
|#include main() |#include #include |
|{ int i,j,a[10], max. nmax, min, |#'\ nclude void main() { int |
|nmin, temp; clrscr(); for (i=0; i<10;|temp, і, j, a[ 1 0]; clrscr(); for |
|i++) сіп » a[i]; max=min=a[0]; |(i=0;i<10;i++) сіп » a [ і ]; for |
|nmax=nmin=0; for (i=0; i<10; i++) |(i=0;i<9;i++) for (j=i+1 ;j<10;j++) if |
|if(a[i]>max) { max=a[i]; nmax=i;} |(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; |
|else if(a[i]