Загрузка...

МАССИВЫ


Одномерные массивы
Массив — это набор переменных, расположенных последовательно в памяти, имеющих одно имя и отличающихся друг от друга числовым признаком. Признаком массива являются [], а число в скобках указывает количество элементов массива.
float mas [20]; — объявляет массив mas, состоящий из 20 членов или элементов. 1 элемент mas [0], последний mas [19].
mas [5] = 32.54; присваивание значения элементу массива
float y = mas[5];
Массивы могут быть образованы из данных любого типа. Одномерные массивы называются вектором, двумерные – матрицей.

Обращение к элементу массива осуществляется с помощью индекса. Индекс изменяются от 0 до n-1, где n размерность массива.
Для работы с массивами часто используются циклы.

#include <stdio.h>
void main (void) {
int i, а[10];
for (i=0; i<10; i++)
scanf (» %d»,&a[i]); //ввод с клавиатуры
printf («Вывести следующие результаты \n»);
for (i=0; i<10; i++)
printf (» %5d», a[i]); // вывод на экран.
}

Стандартные алгоритмы работы с одномерными массивами

//Пример: Нахождения max (min) числа в массиве.
#include <stdio.h>
void main (void) {
int i, num, a[10];
for (num=a[0], i=1; i<10; i++)
if (num<a[i])
num=a[i];
printf(«Max число в массиве %d\n»,num);
}
//Пример: Сортировка по возрастанию методом отбора ?(n^2-n)
#include <stdio.h>
void main (void) {
int i, j, num, k, flag, a[10];
for (i=0; i<9; ++i) {
num=a[i]; k=i; flag=0;
for (j=i+1; j<10; ++j){
if (a[j]<num) { // ищем min, его индекс.
num=a[j];
k=j;
flag=1;
}
}
if(flag==1){
a[k]=a[i];
a[i]=num;
}
}
}
//Пример: Сортировка по возрастанию методом «Пузырька» ?(n^2-n)
#include <stdio.h>
void main (void) {
int i, j, a[10], num;
for (i=1; i<10; i++) {
for (j=9; j>=i; —j){
if (a[j-1]>a[j]) { // ищем min, его индекс.
num=a[j-1];
a[j-1]=a[j];
a[j]=num;
}
}
}
}
//Пример: поиск заданного значения
#include <stdio.h>
void main (void) {
int i, k=0, num=10, a[10];
for (i=0; i<10; i++) {
if(a[i]==num)
printf(«%d»,i);
}
}

Инициализация одномерных массивов.

Для хранения данных часто используются массивы. Их можно инициализировать.
int days[12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
Если данных меньше, чем 12, то остальные будут инициализированы 0, если массив глобальный, иначе значения неопределенны. Можно не задавать количество элементов в массиве. Оно будет определяться автоматически.
int days []={31, 28, 31, 30, 31, 30, 31, 31, 30, 31};
void main (void){
int i;
for (i=0; i<sizeof days/(sizeof(int)); i++)
printf(«Месяц %d имеет %d дней\n»,i+1, i++);
}

Загрузка...