Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Примеры обработки одномерных массивов ⇐ ПредыдущаяСтр 6 из 6
Пример 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; }
|