Читайте также: |
|
Масиви - це група елементів однакового типу (double, float, int і т.п.). З оголошення масиву компілятор повинний одержати інформацію про тип елементів масиву і їхню кількість. Оголошення масиву має два формати:
1. Специфікатор - типу описатель [константний - вираз];
2. Специфікатор - типу описатель [ ];
Описатель - це ідентифікатор масиву.
Специфікатор - типу задає тип елементів масиву, що повідомляється. Елементами масиву не можуть бути функції й елементи типу void.
Константний - вираз в квадратних дужках задає кількість елементів масиву. Константний - вираз при оголошенні масиву може бути опущено в наступних випадках:
¾ при оголошенні масив ініціалізується,
¾ масив оголошений як формальний параметр функції,
¾ масив оголошений як посилання на масив, явно визначений в іншому файлі.
Кожний константний - вираз в квадратних дужках визначає число елементів по даному вимірі масиву, так що оголошення двовимірного масиву містить два константних - вирази, тривимірного - три і т.д. Відзначимо, що в мові С перший елемент масиву має індекс рівний 0. Якщо ми оголосили масив int a[100], то це означає, що масив містить 100 елементів від a[0] до а[99].
Приклад:
double b[10]; /* вектор з 10 елементів, що мають ініціалізувати тип double */Дуже важливо вміти ініціалізувати масиви, тобто привласнювати елементам масиву деякі початкові значення. У мові С для цього є спеціальні можливості. Найпростіший спосіб ініціалізації наступний: у процесі оголошення масиву вказати у фігурних дужках список ініціалізаторів:
float farr[6]={1.1,2.2,3.3,4.4.5.5,6.6};
Допускається також оголошення й ініціалізація масиву без явної вказівки розміру масиву. Наприклад:
int mass[]={1,2,3,1,2,3,4};
Проте, якщо масив великий, ця процедура стає довгою та утомлюючою. Для введення масиву використовується цикл із параметром.
Приклад:
Оголошено масив з десяти цілих елементів (int arr[10]). Потрібно ввести значення його елементів
for(i=0;i<10;i++) scanf(“%d”,&arr[i]);
Найпростішими задачами на обробку масиву є задачі на визначення його кількісних характеристик, таких, як сума елементів, їх добуток тощо.
Розглянемо алгоритм знаходження суми елементів масиву X(N). В ньому можна виділити певні дії, що є характерними для задач визначення кількісних характеристик масиву (рис. 6.1).
В таблиці 6.1. наведені аналогічні операції для знаходження таких кількісних характеристик одновимірного масиву X(N):
· добуток елементів ();
· кількість елементів К;
· середнє арифметичне К елементів ();
· середнє геометричне К елементів ();
· максимальний, мінімальний елемент та його номер.
Таблиця 6.1.
Характеристика масиву | До циклу | В циклі | Після циклу |
Сума | S=0 | S=S+Xi | Вивід S |
Добуток | P=1 | P=P*Xi | Вивід P |
Кількість | K=0 | K=K+1 | Вивід K |
Середнє арифметичне | S=0; K=0 | S=S+Xi; K=K+1 | SA=S/K Вивід SA |
Середнє геометричне | P=1; K=0 | P=P*Xi; K=K+1 | SR=P1/K Вивід SR |
Максимальний елемент | MAX=X1 або MAX=-1020 | Якщо Xi>MAX, то MAX=Xi | Вивід MAX |
Максимальний елемент і його номер | MAX=X1 або MAX=-1020, L=1 | Якщо Xi>MAX, то MAX=Xi, L= i | Вивід MAX, L |
Мінімальний елемент | MIN=X1 або MIN=1020 | Якщо Xi<MIN, то MIN=Xi | Вивід MIN |
Мінімальний елемент та його номер | MIN=X1 або MIN=1020 L=1 | Якщо Xi<MIN, то MIN=Xi , L= i | Вивід MIN, L |
Завдання 1. В масиві A(M) знайти суму парних елементів, максимальний елемент і його номер.
Програма (Блок-схема представлена на рис. 6.2).
#include <stdio.h>
/*Обробка одновимірного масиву*/
main()
{
float a[100];
int i, m, nom;
float s, max;
printf(“Введіть кількість елементів в масиві:”);
scanf(“%d”,&m);
/*Ввід елементів масиву*/
for(i=0;i<m;i++)
scanf(“%d”,&a[i]);
s=0;
/*Знаходження суми парних елементів*/
for(i=0;i<m;i++)
{
if(a[i]%2==0)s+=a[i];
}
/*Знаходження максимального елементу масиву*/
/*та його номер*/
max=a[0];
for(i=0;i<m;i++)
{
if(a[i]>max)
{
max=a[i];
nom=i;
}
}
printf(“\n””s=%g”,s);
printf(“\n””max=%g nom=%d”,max,nom);
}
Дата добавления: 2015-07-20; просмотров: 106 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Зразок виконання завдання | | | Завдання 2. |