Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Си. Массивы: объявление массивовСодержание книги Похожие статьи вашей тематики
Поиск на нашем сайте Массив – это совокупность данных, которая обладает следующими свойствами: все элементы массива имеют один и тот же тип; массив имеет одно имя для всех элементов; доступ к конкретному элементу массива осуществляется по индексу (индексам). 1. Объявление массива Объявление массива имеет следующий синтаксис: <спецификация типа> <имя> [<константное выражение>]; <спецификация типа> <имя> [ ]; Здесь квадратные скобки являются элементом синтаксиса, а не признаком необязательности конструкции. Объявление массива может иметь одну из двух синтаксических форм, указанных выше. Квадратные скобки, следующие за именем, – признак того, что переменная является массивом. Константное выражение, заключенное в квадратные скобки определяет число элементов в массиве. Индексация элементов массива в языке C++ начинается с нуля. Таким образом, последний элемент массива имеет индекс на единицу меньше, чем число элементов массива. Во второй синтаксической форме константное выражение в квадратных скобках опущено. Эта форма может быть использована, если в объявлении массива присутствует инициализатор, либо массив объявляется как формальный параметр функции, либо данное объявление является ссылкой на объявление массива где-то в другом месте программы. Однако для многомерного массива может быть опущена только первая размерность. Многомерный массив, или массив массивов, объявляется путем задания последовательности константных выражений в квадратных скобках, следующей за именем: <спецификация типа> <имя> [<константное выражение>][<константное выражение>]...; Каждое константное выражение определяет количество элементов в данном измерении массива, поэтому объявление двумерного массива содержит два константных выражение, трехмерного – три и т.д. Массив может состоять из элементов любого типа, кроме типа void и функций, т.е. элементы массива могут иметь базовый, перечислимый, структурный тип, быть объединением, указателем или массивом. Примеры объявлений массивов:
Инициализация массивов Как и простые переменные, массивы могут быть инициализированы при объявлении. Инициализатор для объектов составных типов (каким является массив) состоит из списка инициализаторов, разделенных запятыми и заключенных в фигурные скобки. Каждый инициализатор в списке представляет собой либо константу соответствующего типа, либо, в свою очередь, список инициализаторов. Эта конструкция используется для инициализации многомерных массивов. Наличие списка инициализаторов в объявлении массива позволяет не указывать число элементов по его первой размерности. В этом случае количество элементов в списке инициализаторов и определяет число элементов по первой размерности массива. Тем самым определяется размер памяти, необходимой для хранения массива. Число элементов по остальным размерностям массива, кроме первой, указывать обязательно. Если в списке инициализаторов меньше элементов, чем в массиве, то оставшиеся элементы неявно инициализируются нулевыми значениями. Если же число инициализаторов больше, чем требуется, то выдается сообщение об ошибке. Примеры инициализации массивов:
Обратите внимание, что не существует присваивания массиву, соответствующего описанному выше способу инициализации.
Си. Примеры работы с одномерными массивами: ввод/вывод
В языке C нет возможности вводить и выводить весь массив одним оператором ввода/вывода. Можно вводить и выводить только один элемент массива. Следовательно, для того чтобы ввести весь массив, надо использовать цикл.
Вывод также осуществляется в цикле.
В результате на экране мы увидим примерно следующий текст: a[1] = 4 a[2] = 15 a[3] = -2 ...
Си. Примеры работы с одномерными массивами: суммирование значений Даны три массива разной размерности. Определить в каком массиве больше сумма элементов.
Си. Примеры работы с одномерными массивами: нахождение максимального элемента #include <iostream> using namespace std; int main() { int m[10],I, min,max; for(i=0;i<10;i++){ cin>>m[i]; } max=m[0]; for(i=1;i<10;i++){ if(max<m[i])max=m[i]; } min=m[0]; for(i=1;i<10;i++){ if(min>m[i]) min = m[i]; } cout<<"min = "<<min<<endl; cout<<"max = "<<max;
system("PAUSE"); return 0; } Си. Примеры работы с одномерными массивами: циклический сдвиг
//Cдвигает элементы массива на 1 влево
#include <iostream> #include <iterator> #include <algorithm>
int main() { std::size_t const arraySize = 10; int array[arraySize] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
std::rotate(array, array + 1, array + arraySize);
std::copy(array, array + arraySize, std::ostream_iterator<int>(std::cout, " ")); std::cout << std::endl; }
Си. Примеры работы с одномерными массивами: поиск элемента /* Бинарный поиск */ #include main() { int k[100],v,i,j,m; for (i=0;i<100;i++) scanf("%d",&k[i]); scanf("%d",&v); i=0; j=100; m=50; while (k[m]!=v) { if (k[m] < v) i+=m; else j=m-i; m=(i+j)/2; } printf("%d %d",v,m); }
Си. Примеры работы с одномерными массивами: алгоритмы сортировки массивов Сортировка выбором Идея метода состоит в том, чтобы создавать отсортированную последовательность путем присоединения к ней одного элемента за другим в правильном порядке. Если входная последовательность почти упорядочена, то сравнений будет столько же, значит алгоритм ведет себя неестественно. template< class T > void selectSort(T* arr, int size) { T tmp; for(int i = 0; i < size; ++i) // i - номер текущего шага { int pos = i; tmp = arr[i]; for(int j = i + 1; j < size; ++j) // цикл выбора наименьшегоэлемента { if (arr[j] < tmp) { pos = j; tmp = arr[j]; } } arr[pos] = arr[i]; arr[i] = tmp; // меняем местами наименьший с a[i] } }
|
|||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2017-01-25; просмотров: 551; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.) |