Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДЗ1.doc
Скачиваний:
14
Добавлен:
16.04.2015
Размер:
232.45 Кб
Скачать

Задача 11.

Даны массивы чисел. Размеры массивов заданы в варианте. Требуется в каждом массиве найти наибольший и наименьший элементы и напечатать их, затем все компоненты каждого массива возвести в квадрат и снова найти наибольший и наименьший элементы. Вычисление максимальной и минимальной величин оформить в виде функции.

  1. Ввести и обработать два массива, содержащие соответственно 5 и 8 вещественных компонентов.

  2. Ввести и обработать три массива, содержащие соответственно 3, 6 и 8 целых компонентов.

  3. Ввести и обработать четыре массива, содержащие соответственно 4, 6, 3 и 10 целых компонентов.

  4. Ввести и обработать два массива, содержащие соответственно 4 и 6 вещественных компонентов.

  5. Ввести и обработать три массива, содержащие соответственно 5, 10 и 4 целых компонента.

  6. Ввести и обработать четыре массива, содержащие соответственно 3, 5, 8 и 6 вещественных компонентов.

  7. Ввести и обработать два массива, содержащие соответственно 7 и 10 вещественных компонентов.

  8. Ввести и обработать три массива, содержащие соответственно 5, 4 и 7 целых компонентов.

  9. Ввести и обработать четыре массива, содержащие соответственно 7, 3, 5 и 4 целых компонента.

  10. Ввести и обработать два массива, содержащие соответственно 6 и 9 вещественных компонентов.

Примечание

При выполнении задач обработки символьных данных могут быть полезны следующие функции потокового ввода-вывода стандартной библиотеки языка Си:

  • char *fgets (char *s, int n, FILE *stream) – чтение строки из входного потока, включая символ новой строки.

  • char *gets (char *s)­ – чтение строки из стандартного файла ввода stdin.

  • int fputs (char *s, FILE *stream) – запись строки в поток stream.

  • int puts (char *s) – запись строки в стандартный файл вывода stdout. В конце строк записывается символ новой строки.

Для обработки строк служат следующие функции:

  • char *strcat(char *s1, char *s2) – сцепить две строки.

  • char *strncat(char *s1, char *s2, int n) – сцепить две строки, причем из второй строки копировать не более n символов.

  • int strcmp(char *str1, char *str2) – сравнить две строки в лексикографическом порядке.

Возвращаемое значение

Результат сравнения

Меньше нуля

str1 меньше str2

Нуль

str1 равен str2

Больше нуля

str1 больше str2

  • int strncmp(char *s1, char *s2, int n) – сравнить первые n символов двух строк.

  • char *strcpy(char *s1, char *s2) –копировать строку s2 в строку s1.

  • char *strncpy(char *s1, char *s2, int n) – копировать не более n символов строки s2.

  • int strlen(char *s) – определить длину строки (число символов без завершающего нулевого символа).

  • char *strchr(char *s, int n) - возвращает указатель на первое вхождение символа n в строке s. Завершающий нулевой символ считается частью Си-строки. Таким образом, он также может быть найден для получения указателя на конец строки. Если значение не найдено, функция возвращает нулевой указатель.

  • char *strrchr(char *s, int c) – возвращает указатель на последнее вхождение символа c в строке s. Завершающий нулевой символ считается частью Си-строки. Таким образом, он также может быть найден для получения указателя на конец строки. Если значение не найдено, функция возвращает нулевой указатель..

  • char *strpbrk(char *s1, char *s2) – возвращает указатель на первое вхождение в s1 любого из символов строки s2, или — пустой указатель, если нет ни одного совпадения. Поиск не учитывает завершающий нуль-символ.

  • int strspn(char *s1, char *s2) – выполняет поиск символов строки s2 в строке s1. Возвращает длину начального участка строки s1, состоящего из символов строки s2. Если все символы строки s1 входят в строку s2, функция возвращает длину всей строки s1. Если первый символ в s1 не входит в строку s2, функция возвращает ноль.

  • int strcspn(char *s1, char *s2) – выполняет поиск первого вхождения в строку s1 любого из символов строки s2, и возвращает количество символов до найденного первого вхождения. Поиск учитывает и завершающий нуль-символов, поэтому, если функция возвращает длину строки s1, это значит, что ни один из символов строки s2 не входит в состав s1.

  • char *strtok(char *s1, char *s2) – выполняет поиск лексем в строке s1, разделенных любым из множества символов, входящих в строку s2. Последовательность вызовов этой функции разбивают строку s1 на лексемы, которые представляют собой последовательности символов, разделенных символами разделителями. На первый вызов, функция принимает строку s1 в качестве аргумента, чей первый символ используется в качестве начальной точки для поиска лексем. В последующие вызовы, функция ожидает нулевого указателя и использует позицию сразу после окончания последней лексемы как новое местонахождение для сканирования. Для определения начала лексемы функция сначала определяет символы, не содержащиеся в строке s2, то есть они являются символами разделителями. А затем посимвольно проверяет остальную часть строки до первого символа-разделителя, который сигнализирует конец лексемы. Этот конечный маркер автоматически заменяется нулевым символом, и лексема возвращается функцией. После этого, следующие вызовы функции strtok начинаются с этого нулевого символа. Возвращает указатель на последнюю найденную лексему в строке либо пустой указатель, если нет найденных лексем.

Для выполнения функций обработки строк необходимо включить в программу файл string.h командой

#include <string.h>

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