Тренировочные задания: Функции
Восемь задач на оформление кода функциями. Каждую задачу решайте отдельной функцией:
объявите прототип до main, затем вызов. В решениях показана сама функция; вызов добавьте
в main самостоятельно. Сначала попробуйте без подсказки.
Задача 1. Большее из двух
Напишите функцию, которая возвращает большее из двух целых чисел.
Пример ввода:
7 12
Пример вывода:
12
Решение
int max_of_two(int x, int y)
{
if (x > y)
{
return x;
}
return y;
}
Задача 2. Чётное число
Функция возвращает 1, если число чётное, и 0 — если нет.
Пример ввода:
8
Пример вывода:
1
Решение
int is_even(int n)
{
return n % 2 == 0;
}
Задача 3. Минимум из трёх
Найдите наименьшее из трёх чисел.
Пример ввода:
5 3 9
Пример вывода:
3
Решение
int min_of_three(int a, int b, int c)
{
int min = a;
if (b < min)
{
min = b;
}
if (c < min)
{
min = c;
}
return min;
}
Задача 4. Возведение в степень
Возведите число в целую неотрицательную степень (без math.h).
Пример ввода:
2 10
Пример вывода:
1024
Решение
long long power(int base, int exp)
{
long long result = 1;
for (int i = 0; i < exp; i++)
{
result *= base;
}
return result;
}
Задача 5. Сумма от 1 до N
Верните сумму всех чисел от 1 до n.
Пример ввода:
5
Пример вывода:
15
Решение
int sum_to(int n)
{
int sum = 0;
for (int i = 1; i <= n; i++)
{
sum += i;
}
return sum;
}
Задача 6. Линия из символов
Функция типа void печатает линию из n символов ch.
Пример ввода:
6 *
Пример вывода:
******
Решение
void print_line(int n, char ch)
{
for (int i = 0; i < n; i++)
{
printf("%c", ch);
}
printf("\n");
}
Задача 7. Сколько цифр в числе
Функция возвращает количество цифр в целом положительном числе. Для числа 0 вернуть 1.
Пример ввода:
47205
Пример вывода:
5
Решение
int count_digits(int n)
{
int count = 0;
if (n == 0)
{
return 1;
}
while (n > 0)
{
count++;
n /= 10;
}
return count;
}
Задача 8. Модуль числа
Верните модуль числа, не используя библиотеку math.h.
Пример ввода:
-8
Пример вывода:
8
Решение
int abs_value(int x)
{
if (x < 0)
{
return -x;
}
return x;
}