Задачи и решение на С

В последнем примере «Указатели и массивы» демонстрируются особенности указателей. В книгу вклю­чены ребусы, шарады, логические и шуточные задачи, криптограммы и кроссворды. Данные для двух из них получите с помощью вызовов функции gets().

Логические задачи – это своеобразная «гимнастика для ума», средство для утоления естественной для каждого мыс­лящего человека потребности испытывать и упражнять силу собственного разума. Первая половина задач и примеров взята из книги Б. Кернигана и Д. Ритчи «Язык программирования C» (второе издание).

Логические задачи

Все переменные локальные и поэтому с первого взгляда не понятно, почему функция getline() меняет значение переменной line в функции main(), а copy() — значение longest.

Сергей и Оля договорились встретиться на свидании у входа в парк ровно в 9 часов вечера. Но вот ведь незадача, и у Сергея и у Оли часы идут-то неверно! Два теплохода одновременно вышли из портов и с постоянной скоростью движутся во встречном направлении.

Но вот нашелся один мальчик, который никак не мог в это поверить. И вот одним ранним утром он проснулся и принялся дотошно пересчитывать на бумаге клетки, добросовестно отмечая карандашом каждую из посчитанных клеток. Тауэрский мост. Сборник небольших онлайн пазлов для детей и взрослых. Материалы сборника разнообразны и занимательны. Я бы расширил список разделов, по которым разложены здачи… и сильно. В книге в данном разделе опущен момент о том, как происходит обмен данными между функциями (хотя оговаривается перед этим об особенностях передачи массивов в качестве аргументов).

Массивы в качестве аргументов передаются не по значению. Переменные в getline() и copy() получают ссылки на массивы, определенные в main(), а не содержимое этих массивов. 0} s=’\0′;// обозначение конца строки в языке Сиreturn i;// длина строки}/* Переменная to связана с longest.

Ряд Фибоначчи и вычисление факториала

Говорится о том, что в стандартной библиотеки существует функция для измерения длины строки, а также приводится ее собственная версия. В примере ниже строка, вводимая пользователем, записывается в массив символов.

Поэтому цикл while в функции strlen2() работает корректно. Алгоритм удаления тех символов строки, которые встречаются в другой строке, отличается от предыдущего тем, что нужно по очереди извлекать символы из второй строки и удалять их из первой. Примечание. Используется постфиксная форма инкремента (k++). В этом случае k сначала используется и только потом увеличивается на единицу. Функция month_name возвращает указатель на первый символ строки.

K&R (52-53). Длина строки

Дни, месяцы и года следует присвоить целочисленным переменным. Объявите в программе три массива символов. Пользователь вводит адреса сайтов и их ТИЦ. Данные о каждом сайте сохраняются в элементе динамической структуры.

При расчесывании сухих волос пластмассовой расческой возникают электрические искры между расческой и во­лосами. Многие из Вас когда-нибудь замечали, что перед тем, как двинуть состав поезда вперед, машинист нередко подает весь состав назад. Для чего это делается?

Функция для объединения строк

Как Вы считаете — смог ли он в этот день убедиться в том, что квадратный метр действительно заключает в себе миллион квадратных миллиметров? Да — мне это тоже очень нравится! В результате происходит изменение longest. Обращает на себя внимание то, что завершающий символ нуля в строку не записывался, однако видимо он туда автоматически добавляется. Т.е. приведенный выше алгоритм следует вложить в цикл перебора символов второй строки.

K&R (61-62). Удаление символов из строки

Массив months представляет собой массив указателей на первые символы строк. Например, months содержит адрес на символ ‘M’, который можно получить так: *months. Напишите программу, в которой помимо функции main() были бы еще две функции: в одной вычислялся факториал переданного числа, в другой — находился n-ый элемент ряда Фибоначчи (n — параметр функции).

Сохранение динамической структуры в файле

Напишите программу, которая запрашивает у пользователя две даты в формате дд.мм.гггг. По команде пользователя данные записываются в файл, при этом память, выделенная под динамическую структуру, высвобождается.

Выпущенные из рук детские воздушные шары куда-то уле­тают. Как Вы думаете, кто из них опоздает на свидание? Петя и Миша играли на грязном и темном чердаке дома. Потом они спустились вниз. У Пети всё лицо было грязным, а лицо Миши чудом осталось чистым. Несмотря на это, только Миша отправился умываться. Скорость одного теплохода 20 км/час, другого – 30 км/час.

Еще классно, что задачи собраны по темам. Если хочешь порешать задачи с функциями, не надо перечитывать содержание 152 задач, а проходишь по нужной ссылке и практикуешься не тратя время на лишнее. В разделе представлен ряд занимательных задач из области математики, физики, естествознания, полюбившиеся многим задачи на взвешивание, задачи на нестандартное логическое мышление и многое другое.

Смотри также:

Запись опубликована в рубрике Применять с метками . Добавьте в закладки постоянную ссылку.