Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие_С++_new.docx
Скачиваний:
69
Добавлен:
11.04.2015
Размер:
741.96 Кб
Скачать

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

При решении задач обработки массивов используют базовые алгоритмы реализации циклических вычислительных процессов: организация счетчика, накопление сумм и произведений, поиск минимального и максимального элементов массива.

Задача 1. Организация счетчика

Дан целочисленный массив: В = {bi};i=. Определитьколичество элементов массива, которые делятся на 3 без остатка.

Схема алгоритма:

Текст программы:

#include "stdafx.h"

int main()

{

int В[20] ; /* описание массива B*/

int i, L;

printf("Введите массив В\n");

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

scanf("%d", &В[i]); /* ввод данных в массив с клавиатуры*/

L=0;

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

if (В[i] % 3== 0) /*проверка элемента на кратность 3 */

L++;

printf("Кол-во=%d\n", L);

return 0;

}

Задача 2. Накопление суммы и произведения

Дано целое число п и массив вещественных чисел:

.

Вычислить среднее арифметическое и среднее геометрическое чисел массива, используя формулы:

; .

Схема алгоритма:

Текст программы:

#include "stdafx.h"

#include <math.h>

int main()

{

float X [100]; //описание массива Х

float z;

int n;

int i;

float S=0, P=1; //начальные значения суммы и произведения

printf("Введите размер массива n= ");

scanf("%d",&n);

printf("Введите массив X\n");

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

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

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

{

S = S + X[i]; /* вычисление суммы элементов массива Х */

P =P*X[i]; /* вычисление произведения элементов Х */

}

S = S/n; /* вычисление среднего значения Х */

z=1.0/n;

P=pow(P,z); /* вычисление среднего геометрического Х */

printf("S=%6.2f\n", S);

printf("P=%10.6f\n",P);

return 0;

}

Задача 3. Поиск минимального и максимального элементов массива

Дан вещественный массив: T = {ti}; i=. Поменять местами минимальный и максимальный элементы массива и вывести массив после обмена.

Решение

В этой задаче для осуществления обмена надо знать не только значения минимального и максимального элементов массива, но и их местоположение. Поэтому во время поиска минимального и максимального элементов необходимо фиксировать значения их индексов.

Введем обозначения:

min - минимальный элемент;

imin - индекс минимального элемента;

max - максимальный элемент;

imax - индекс максимального элемента.

Схема алгоритма:

Текст программы:

#include "stdafx.h"

#include<math.h>

int main()

{

float T[10] ; /* описание массива Т */

int i, imin, imax;

float min, max;

printf("Введите массив Т\n");

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

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

min =+1E6;

max =-1E6;

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

{

if (T[i]<min)

{

min = T[i];

imin=i; /* сохранение номера текущего min */

}

if( T[i]>max)

{

max = T[i];

imax = i; /* сохранение номера текущего max */

}

}

T[imin]=max;

T[imax]= min;

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

printf("%6.2f ",T[i]);

printf("\n");

return 0;

}