Рішення задач на c

Тут знаходиться колекція рішень задач і приклади маленьких програм на мові C.

Друга половина завдань - це відповіді на деякі завдання до курсу "Особливості мови C".

В останньому прикладі "Покажчики та масиви" демонструються особливості покажчиків.

Рішення задач на мові програмування C

Рішення задач на мові програмування C

Говориться про те, що в стандартній бібліотеки існує функція для вимірювання довжини рядка, а також наводиться її власна версія. Робочий варіант коду програми повністю відсутня.

У прикладі нижче рядок, що вводиться користувачем, записується в масив символів. Потім її довжина вимірюється за допомогою вбудованої функції strlen (), після чого за допомогою користувальницької функції strlen2 ().

Рішення задач на мові програмування C

Наводиться приклад функції squeeze. яка видаляє всі символи c з рядка s.

Нижче представлений повний код програми з використанням цієї функції. А також відповідь до вправи 2.4, де пропонується написати функцію, що видаляє з рядка s1 все символи, що зустрічаються в рядку s2.

Алгоритм видалення символу з рядка можна описати так:

  • Поки не буде досягнутий кінець рядка,
  • якщо черговий символ рядки не дорівнює символу для видалення,
  • записати черговий символ за місцем індексу j. після цього останній збільшити на одиницю.

Іншими словами, алгоритм зводиться до того, що символ за індексом i затирається наступним символом, якщо він збігся з символом для видалення; т.к запис йде за лічильником j. а він збільшується лише тоді, коли символи з рядка і для видалення не збігаються.

Алгоритм видалення тих символів рядка, які зустрічаються в іншому рядку, відрізняється від попереднього тим, що потрібно по черзі витягати символи з другого рядка і видаляти їх з першої. Тобто Наведений вище алгоритм слід вкласти в цикл перебору символів другого рядка.

Видалення всіх символів c з рядка

Видалення всіх символів, що зустрічаються в рядку s2. з рядка s1

Примітка. У другій програмі запис символів в рядок виділена в окрему функцію, тому що треба записати два рядки. Інакше довелося б дублювати код.

Рішення задач на мові програмування C

У книзі описана функції пошуку елемента в упорядкованому масиві за допомогою алгоритму двійкового пошуку (дихотомії).

Приклад робочої програми з використанням цієї функції:

Рішення задач на мові програмування C

Відповідь до вправи 3.2.

Заміна керуючих послідовностей звичайними символами

Примітка. Використовується Постфіксний форма инкремента (k ++). В цьому випадку k спочатку використовується і тільки потім збільшується на одиницю.
При виведенні зміненої рядки з'являються дивні "артефакти" в кінці.

Заміна пар символів "\ n" і "\ t" керуючими послідовностями

Рішення задач на мові програмування C

Відповідь до вправи 3.3. Спрощена версія.

Програма розгортає рядок, подібний до a-z в рядок abc. xyz. Якщо перший рядок некоректно записана (наприклад, z-a або oiy), то другий рядок містить тільки символ кінця рядка.

Рішення задач на мові програмування C

Рішення задач на мові програмування C

Програма вважає кількість введених користувачем символів, рядків і слів.

Рішення задач на мові програмування C

Напишіть програму, в якій крім функції main () були б ще дві функції: в одній обчислювався факторіал переданого числа, в іншій - перебував n-ий елемент ряду Фібоначчі (n - параметр функції). Викличте ці функції з різними аргументами.

Рішення задач на мові програмування C

Напишіть програму, яка запитує у користувача дві дати в форматі дд.мм.рррр. Дні, місяці і роки слід привласнити цілочисельним змінним. Програма повинна виводити на екран інформацію про те, яка дата раніша, а яка пізніша.

Рішення задач на мові програмування C

Оголосіть в програмі три масиву символів. Дані для двох з них отримаєте за допомогою викликів функції gets # 40; # 41 ;. Третій масив повинен містити результат конкатенації (з'єднання) двох введених рядків. Напишіть функцію, яка виконує конкатенацію рядків.

Рішення задач на мові програмування C

Напишіть програму, яка визначає в процентному співвідношенні кількість голосних і приголосних букв в текстовому файлі. Файл передається в програму через командний рядок.

Рішення задач на мові програмування C

Напишіть функцію, яка приймає покажчики на два масиви. Функція повинна заповнювати один масив 25-ю випадковими парними числами, а інший - 25 непарними. Продемонструйте її роботу.

Рішення задач на мові програмування C

Рішення задач на мові програмування C

Коли змінна-вказівник оголошується (наприклад, int * q), перед її ім'ям також ставиться знак *. Однак в даному контексті він просто повідомляє, що дана змінна - це покажчик, і знак * не має відношення до вилучення значення.

Схожі статті