Обработка одномерных массивов

Пример 28.

Найти индекс и значение минимального элемента массива.

В задаче достаточно определить индекс искомого элемента массива, и с его помощью получить доступ к самому элементу.

Программа:

# define k 10 // количество элементов массива

void main ()

{ float a[k]; int i; im; // описание массива и переменных

clrscr(); // очистка экрана

puts (“Ввести %d элементов массива”; k);

for (i=0;i<k;i++) // цикл по индексам элементов

scanf (“%f”, ar+i); // ввод элемента

im=0; // индекс начального элемента

for (i=1; i<k; i++) // цикл поиска индекса минимума

if (a[i] < a[im]) im=i; // проверка элемента на минимум

printf (“Минимум = %5.2f индекс=%d”, a[im], im);

}

Пример 29.

Упорядочить по возрастанию элементы массива методом "пузырька". Название происходит оттого, что легкие элементы должны перемещаться ("всплывать") к одному из концов массива. Используется два цикла. Первый цикл (прямой) организует шаги сортировки на единицу меньше числа элементов. Второй (обратный) цикл от конца массива до начала неупорядоченного фрагмента массива. В нем сравниваются соседние элементы a[j] и a[j-1] и переставляются местами с использованием рабочей ячейки r, если нарушено условие сортировки.

Программа:

#define k 10 // размер массива

void main ()

{ float a[k], r; // описание массива и переменной

int i, j; // описание индексов

clrscr(); // очистка экрана

printf (“Ввод массива:\n”);

for (i=0; i < k; i++) scanf (“%f”, a+i); // цикл ввода элементов массива

for (i=0; i < k-1; i++) // цикл шагов упорядочения

{ for(j=k-1; j > i; j--) // цикл перестановок элементов

if (a[j-1] > a[j]) // если условие сортировки нарушено,

{ r=a[j]; // перестановка

a[j]=a[j-1]; // соседних

a[j-1]=r; // элементов

} // конец цикла перестановок

} // конец цикла упорядочения

puts (“Массив упорядочен по возрастанию:”);

for (i=0; i<k; i++) printf (“%5.2f ”, a[i]); // цикл вывода массива

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



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