double arrow

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

Пример 1.: Нахождения 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);

}

Пример2.: Сортировка по возрастанию методом отбора

#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;

}

}

}

Пример 3.: Сортировка по возрастанию методом «Пузырька»

#include <stdio.h>

void main (void) {

int i, j, a[10], num;

for (i=1; i<10; i++)

for (j=8; j>=i; --j)

if (a[j-1]<a[j]) { // ищем min, его индекс.

num=a[j-1];

a[j-1]=a[j];

a[j]=num;

}

}

Пример 4.: поиск заданного значения

#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(unt)); i++)

printf("Месяц %d имеет %d дней\n",i+1, i++);

}

Обнуление массива:

int array[10] = {0};






Сейчас читают про: