Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_po_poryadku_proga.doc
Скачиваний:
4
Добавлен:
15.04.2019
Размер:
1.07 Mб
Скачать

8. Функции форматированного ввода

Функция scanf вводит аргументы, применяя к каждому определитель формата из *format. Заголовок функции имеет следующий вид: int scanf(const char *format [, arg, ...]); Функция scanf вводит аргументы, применяя к каждому определитель формата из *format.

Аргументы должны задавать адреса переменных. (&) Поведение scanf не опpеделено в слyчае нехватки аргументов для фоpматиpования.

scanf заканчивает работу, если встречает конец форматируемой строки. Если аргументов больше, чем требуется, то лишние аргументы игнорируются.

format - указатель на строку знаков, содержащую два типа объектов: спецификации преобразования, начинающиеся с % и управляющие символы. Спецификации преобразования имеют следующую форму: %[*] [ширина] [модификатор] [тип] - ширина: мин число выводимых символов. -модификатор префикс: уточняет тип. - * означает пропуск при вводе поля, определенного данной спецификацией.

9. Функции общего назначения

В заголовке <stdlib.h> объявляется набор функций, служащих для преобразования данных, генерации случайных чисел, получения и установки переменных среды, управления выполнением программ и выполнения команд. Abs - модуль целого числа bsearch - двоичный поиск qsort - сортировка массива

Для получения псевдо-случайных чисел используют функции int rand(void);

rand возвращает произвольные целые числа при каждом вызове; каждое число непредсказуемо выбирается алгоритмом, т.е. получаются случайные числа.

Void srand(unsigned int );

Эту функцию можно применить для полyчения другой последовательности, использyя некотоpyю величинy.

Алгоритм зависит от статической переменной "random seed"; выдаваемые значения циклически повторяются через число вызовов rand, равное значению этой переменной.

11.1. Объявление и инициализация массива

тип<имя массива> [размер1][размер2]...[размер N]; Количество элементов этого массива=размер1*размер2*...*размер N; Одномерные массивы: тип<имя массива>[размер1]; Двумерный массив: тип<имя массива>[размер1][размер2];

Имя массива - константный указатель.

Для одномерного массива: int days[12]={31,28,31,30,31,30,31,31,30,31,30,31}; сhar Zifra[]={'0','1','2','3','4',’\0’}; Для двумерного массива: int m[3][3]={{'1','2','3'},{'4','5','6'},{'7','8','\0'}}; double temp[][3] = { { 3.2, 3.3, 3.4 }, { 4.1, 3.9, 3.9 } };

Вычислить размер пропущенной размерности const int size_first = sizeof (temp) / sizeof (double[3]); Функция sizeof определяет размер переменной или типа, т.е. это число = количеству байт памяти. Количество элементов в списке инициализации должно соответствовать размеру массива. Если список меньше размера массива, то элементы массива, на которых не хватило списка, будут забиты нулями. Если же список больше массива, то компилятор выдаст синтаксическую ошибку. Можно использовать пустые скобки для инициализации одномерных массивов (компилятор сам определит количество элементов в списке и выделит для массива нужное количество байт памяти). При инициализации многомерных массивов каждая размерность должна быть заключена в фигурные скобки. В языке С под массив всегда выделяется непрерывное место в оперативной памяти, количество байт памяти для одномерного массива: Количество байт = <размер базового типа> * <количество элементов в массиве>. Можно не задавать размеры всех измерений массива, кроме самого последнего.

11.2. Инициализация массивов случайными числами #include <stdib.h> void main() { int A[30],n; srand(1234); for (int i=0; i<n; i++) { A[i] = rand()%100; printf("%d \n",A[i]); }

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]