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

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

}

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

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

}

}

}

 

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

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

}

}

 

Многомерные массивы

 

Определяются в программе также как и одномерные с указанием размерности каждого индекса в квадратных скобках.

float rain[5][12];

Количество выделяемой памяти рассчитывается как 4*5*12 байт.

Каждый индекс изменяется от 0 до n-1. В памяти все элементы располагаются последовательно, но индексы меняются следующим образом:

 
 

 


Элементы двумерных массивов хранятся в памяти ЭВМ по строкам, то есть если перебирать элементы в порядке их хранения, то быстрее будет меняться правый индекс.

 

//Пример программы ввода кол-ва осадков помесячно за 5 лет и расчета среднего за каждый год и за 5 лет

void main(void){

int i,j;

float mas[5][12], sumyear, sum=0;

for (i=0; i<5; i++){

printf("Ввести кол-во осадков за %d год помесячно\n", i+1);

sumyear=0;

for (j=0; j<12; j++){

scanf ("%f",&mas[i][j]);

sumyear+=mas[i][j];

}

sum+=sumyear/12;

printf(Ср. за %d год = %.2f\n”,sumyear/12);

}

printf(Ср. за 5 лет = %.2f\n”,sum/5);

}

 

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

 

Инициализируем каждую строку.

float rain[2][3]={{10.2, 8.1, 6.8},

{9.2, 7.8, 4.4}};

 

Можно инициализировать в строке не все элементы, а только первые указанные.

int array[2][3]={{2, 8},

{9}};

Можно не задавать количество строк. Оно будет определяться автоматически по заданным инициализаторам.

int mas[][3]={{10, 8},

{9, 7, 4}};

 

ФУНКЦИИ

 

Функция – самостоятельная единица программы, спроектированная для реализации конкретной задачи.

Функция – это фрагмент программы со своим именем, к которому можно обратиться многократно для выполнения необходимых действий.

Функция содержит как данные, так и операции над этими данными. Если для объекта имя ссылается на область памяти, где он хранится, то и имя функции ссылается на начало кода этой функции. Функции в Си играют ту же роль что и функции, программы, процедуры в других языках.

- они освобождают от повторного программирования, если конкретную задачу нужно решать в программе несколько раз.

- повышают уровень модульности программы, облегчают её чтение, внесение изменений, коррекцию ошибок.

Функции бывают библиотечные и пользовательские. Для использования библиотечных функций нужно указать заголовочный файл, в которых они объявлены. (директива #include).

 








Дата добавления: 2016-02-02; просмотров: 916;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.