Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






 

Пример 1. Вычислить среднее арифметическое значение элементов массива .

 

Блок-схема

 
 

 


Си-программа

 

#defineNMAX500

intmain()

{

inti, // параметр цикла

n; // кол-во элементов массива

floatS; // среднее арифметическое значение

floatX[NMAX]; // исходный массив

//Ввод и печать n, X

S=0;

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

S += X[i];

S /= n;

//Печать S

getch();

return0;

}

В программе переменная S используется, как сумматор. Поэтому в программе перед накоплением в переменной S суммы элементов массива X производится обнуление этой переменной оператором S = 0. Вместо этого оператора можно было использовать инициализацию переменной при ее определении, если до использования в цикле ее значение не изменялось.

 

Следует обратить внимание еще на одно обстоятельство. Массиву Х в программе выделяется память, необходимая для размещения 500 элементов. В принципе в программе можно было бы написать: for(i=0; i< NMAX; i++).

Однако это означало бы, что программа может обрабатывать лишь массив, содержащий 500 элементов, но не 499 или 100. Поэтому для обеспечения универсальности работы программы обработке подвергается текущее количество элементов n в предположении, что 0< n< NMAX.

 

Пример 2. Вычислить среднее арифметическое значение положительных элементов массива .

 

Блок-схема

 

 
 

 

 


Отличие решения этой задачи от предыдущего примера заключается в том, что перед накоплением сумы элементов массива в S проверяется его значение (оно должно быть положительным X[i] > 0). В переменной k подсчитывается количество таких чисел. В частном случае в массиве X может не быть ни одного положительного элемента (k==0). Тогда при отсутствии оператора «if (k> 0)» было бы деление на нуль, что даст неправильный результат. В программе используется оператор «if (k)», т.к. значение k может быть только нулевым или больше нуля.

Си-программа

 

 

#defineNMAX500

intmain()

{

inti, // параметр цикла

k, // счетчик положительных чисел

n=10; // кол-во элементов массива

floatS; // среднее арифметическое значение

floatx[NMAX]; // исходный массив

//Ввод и печать n, X

S=k=0;

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

if(x[i]> 0)

{

S+=x[i]; k++;

}

if(k)

S/=k;

//Печать S

getch();

return0;

}

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.