Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Типичная ошибка программирования 5Содержание книги Поиск на нашем сайте Завершение директивы процессора # include точкой с запятой. Помните, что директивы препроцессора не являются операторами С. Программа на рис.8 суммирует значения, которые содержатся в массиве а из 12 целых чисел. Оператор в теле цикле for осуществляет суммирование. Важно помнить, что значения, используемые в качестве начальных для массива а, должны были бы вводиться в программу пользователем с клавиатуры Например, следующая структура for for (int j = 0; j < arraySize; j++) cin >> a [j]; считывает значения одно за одним с клавиатуры и запоминает их в элементах а.
Рис.8 – Вычисление суммы элементов массива
Следующий пример использует массивы для суммирования результатов данных, полученных при опросе. Рассмотрим следующую постановку задачи: К сорока студентам обратились с просьбой оценить качество пищи в студенческом кафетерии по десятибалльной шкале (1 означает отвратительное качество, а 10 означает отличное). Поместите сорок ответов в массив целых чисел и просуммируйте результаты опроса. Это типичное применение массива (см. рис.9.). Мы хотим просуммировать количество ответов каждого типа (т.е. от 1 до 10). Массив responses — это массив с 40 элементами, предназначенный для ответов студентов. Мы используем массив с 11 элементами frequency для подсчета числа каждого из ответов. Мы игнорируем первый элемент frequency[0], потому что более логично накапливать ответ 1 в элементе frequency[l], чем в frequency[0]. Это позволяет нам использовать каждый ответ непосредственно как индекс массива frequency.
Рис.9 – Программа простого анализа опроса студентов
Первый цикл for берет ответы один за одним из массива response и дает приращение одному из десяти счетчиков (от frequency! 1] до frequency! 10]) в массиве frequency. Ключевым оператором цикла служит ++frequency[responses[answer]]; Этот оператор увеличивает соответствующий счетчик frequency в зависимости от значения responses!answer]. Например, если счетчик answer равен 0, то элемент responses!answer] равен 1, так что ++frequency!responses!answer]]; на самом деле интерпретируется как оператор ++frequency[1]; который увеличивает элемент массива один. Если answer равен 1, responses[answer] равен 2, так что ++frequency!responses[answer]]; интерпретируется как оператор ++frequency[2]; который увеличивает элемент массива два. Если answer равен 2, responses[answer] равен 6, так что ++frequency[responses[answer]]; интерпретируется как оператор ++frequency[6]; который увеличивает элемент массива шесть и т.д. Заметим, что независимо от числа ответов, полученных в опросе, для суммирования результатов достаточно лишь массива с одиннадцатью элементами (при игнорировании элемента нуль). Если данные содержат неверные значения, такие как 13, программа будет пытаться прибавить 1 к frequency[13]. Это выходило бы за границы массива. С не проверяет границ массивов, чтобы предупредить компьютер о ссылках на несуществующие элементы. Таким образом, выполняемая программа может выйти за пределы любого конца массива без предупреждения. Программист должен иметь гарантию, что все ссылки на массив находятся внутри границ массива.
|
||
|
Последнее изменение этой страницы: 2021-04-14; просмотров: 101; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.214 (0.009 с.) |