Типовые алгоритмы для работы с массивами

Нахождение суммы элементов массива

s = x1+x2+…+xn

 

 

Нахождение произведения элементов массива

р = x1*x2*…*xn

 

Нахождение максимального элемента массива

 

 


 Нахождение  минимального элемента массива



 Взаимозамена двух элементов массива

Требуется поменять местами k и l элементы массива

     
 

 


 Удаление элемента из массива

 

Удалить k-й элемент

 

 

 


Примеры на тему обработки одномерных массивов.

Пример 4.1.

Задан массив действительных чисел, размером 20. Найти сумму положительных элементов.

 

 

 

Пример 4.2.

Задан массив  A действительных чисел, размером n. Перенести в другой массив элементы, значение которых меньше чем (max+min)/2.

 

 






Программирование одномерных масивов

4.3.1Описание одномерного массива

 

<тип> v1[k1], v2[k2], …, vn [kn],

 где vi – имя массива,

 ki – целая константа, указывающая размер массива

K-1)

Например

int p[[5], n=0, d[12];

float x[20], f, z[50], t=-1;

 

x[i]         x[0] x[i+6]   

        .

4.3.2 Ввод значений элементов массива

- С помощью клавиатуры

for(i=0; i<n; i++)

{

printf(“a[ %d ]=”, i+1);

scanf(“%f “, &a[i]);

}

 

- С помощью датчика случайных чисел  

 

# include <stdlib.h>

 

for(i=0; i<n; i++)

a[i]=20+5.0*rand()/RAND_MAX;или a[i]=0.001*rand();

- С помощью формул расчета

for(i=0; i<n; i++)

a[i]=k1*sin(k2*i)-k3*sqrt(k4*i);

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

v[k]={c1,c2,…cm }; m≤k

int s[6]={-1,5,-7,11,8,9};  s[0]=-1,s[5]=9;

int r[ ]={5,9,-1,7,-5};

4.3.4 Вывод (печать) элементов массива

for(i=0; i<n; i++)

printf(“%6.2f”, a[i]);       в строку

 

for(i=0; i<n; i++)

printf(“\n%6.2f”,a[i]);       в столбец

Пример 4.3   

Задан исходный массив А из n-элементов (n≤100).

 Определить М=(Аmax + Аmin)/2.

 

 


 


int main()

int i,n;

float a[100],m,amax,amin;

printf (“Укажите длину массива n”);

scanf(“%d”, &n);

printf (“Введите элементы массива ”);

for(i=0; i<n; i++)

scanf(“%f“, &a[i]);

 

for(i=0; i<n; i++)

printf(“%8.2f _”,a[i]);

 

amax =-1000;

amin =1000;

for(i=0; i<n; i++)

{

if(a[i] > amax) amax =a[i];

if(a[i] < amin) amin =a[i];

}

m=(amax - amin)/2;

printf(“\n m=%8.3 \n”,m);

return 0;

}

 




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



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