60 простейших задач

10 июля список задач обновлён, задачи на лето в окончательном виде. Чтобы не перепутать, задачи выделены курсивным шрифтом.

Задачи без if-ов и циклов

  1. Пользователь вводит x, вывести x*x.
  2. Пользователь вводит двузначное положительное число x, вывести его старший разряд (число десятков) и младший разряд (число единиц).
  3. Пользователь вводит положительные x и y. Вывести остаток от деления x на y, не используя оператор %.
  4. Пользователь вводит трёхзначное положительное число x, вывести разряд сотен, разряд десятков, разряд единиц.
  5. Пользователь вводит трёхзначное положительное число x. Поменять в нём разряд сотен и разряд единиц местами (например, из числа 456 получится 654) и вывести изменённое число. (Примечание: не вывести три числа в обратном порядке слитно, а получить новое число y, и вывести его целиком).

Задачи на оператор if

  1. Пользователь вводит x, вывести “не ноль”, если x не равен нулю, и “ноль”, если равен.
  2. Пользователь вводит x, вывести символ +, если x положителен, и -, если x отрицателен.
  3. Пользователь вводит x и y, вывести большее из этих чисел.
  4. Пользователь вводит x и y, вывести модуль разности этих чисел.
  5. Пользователь вводит положительно число x, округлить его вниз до десятков. Например, 20, 21, 22, ..., 29 должны округляться до 20.
  6. Пользователь вводит положительно число x, округлить его вверх до десятков. Например, 20, 21, 22, ..., 29 должны округляться до 30.
  7. Пользователь вводит положительное число x, округлите его вверх до следующего десятка, если число единиц не меньше 5, и вниз, если меньше 5. Например, при вводе 71 и 74 программа должна вывести 70, а при вводе 75 или 77 вывести 80.
  8. Пользователь вводит x и y, которые мы понимаем как координаты на плоскости. Вывести номер координатной четверти, в которой лежит точка (x, y). Считать, что точки на границах четвертей пользователь никогда не введёт, обрабатывать этот случай не нужно.

Задачи на сложное условие в операторе if

  1. Пользователь вводит год, программа выводит, високосный он или нет. Високосны года, кратные 4, кроме кратных 100 (т.е. года, 1892, 1896, 1904, 1908 – високосные, а 1900 - нет.). Года кратные 400, всё равно считаются високосными, несмотря на кратность 100 (например, 1600 и 2000 - високосные). Использовать составное условие в операторе if.
  2. Пользователь вводит два числа x и y, которые играют роль координат точки на плоскости. Вывести, в какой координатной четверти находится точка с данными координатами. Обработку точек на границах четвертей можно не реализовывать. Задачу решить с помощью четырёх if-ов со сложными условиями.

Задачи на вложенные операторы if

  1. Пользователь вводит год, программа выводит, високосный он или нет. Високосны года, кратные 4, кроме кратных 100 (т.е. года, 1892, 1896, 1904, 1908 – високосные, а 1900 - нет.). Года кратные 400, всё равно считаются високосными, несмотря на кратность 100 (например, 1600 и 2000 - високосные). Использовать вложенные if-ы. В условиях if-ов не должно быть операций &&, ||.
  2. Пользователь вводит два числа x и y, которые играют роль координат точки на плоскости. Вывести, в какой координатной четверти находится точка с данными координатами. Обработку точек на границах четвертей можно не реализовывать. Использовать вложенные if-ы. В условиях if-ов не должно быть операций &&, ||.

Задачи на оператор цикла c известным числом шагов

  1. Вывести числа от 33 до 50 включительно с помощью цикла for.
  2. Вывести числа от 33 до 50 включительно с помощью цикла while.
  3. Вывести кубы чисел от -20 до 20 включительно.
  4. Вывести числа от 50 до 80 с шагом 5 (последовательность 50, 55, ..., 80). Использовать цикл и шаг по переменной величиной 5.
  5. Вывести числа от 50 до 80 с шагом 5 (последовательность 50, 55, ..., 80). Использовать цикл с шагом 1 и с помощью if отбирать числа, подходящие под последовательность.
  6. Пользователь вводит числа x, y. Возвести x в степень y.

Задачи на оператор цикла c неизвестным числом шагов

  1. Пользователь вводит последовательность чисел, заканчивающуюся за ноль. Написать программу, которая считывает числа и считает их сумму, при введении нуля выводит накопленную сумму и завершается. Например, при вводе последовательности 4 5 6 0 она должна вывести 15.
  2. Пользователь вводит последовательность чисел, заканчивающуюся за ноль. Написать программу, которая считывает числа и считает их произведение, при введении нуля выводит накопленное произведение и завершается. Например, при вводе последовательности 4 5 6 0 она должна вывести 120.

Ещё задачи на оператор цикла

  1. Написать программу для вычисления факториала числа.
  2. Написать программу для вычисления биномиального коэффициента \(C^n_k = \frac{n!}{k!(n-k)!}\). Каждый факториал вычислять отдельным циклом.
  3. Написать программу для вычисления биномиального коэффициента с помощью формулы \(C^n_k = \frac{n (n - 1) ... (k + 1)}{(n - k)!}\) Числитель и знаменатель вычислять отдельными циклами

Задачи на работу с двумерным массивом

  1. Заполнить двумерный массив размером 4 на 3 по порядку (строка за строкой слева направо), затем распечатать его в том же порядке.
1 2 3
4 5 6
7 8 9
10 11 12
  1. Считать с клавиатуры значения ячеек массива, затем вывести их. (И считывание, и печать в стандартном порядке).
  2. Считать с клавиатуры двумерный массив размером 7 на 5, вывести сумму элементов в его строках.
  3. Считать с клавиатуры двумерный массив размером 7 на 5, вывести сумму элементов в его столбцах.
  4. Считать с клавиатуры двумерный массив размером 7 на 5, вывести максимум и минимум сумм элементов в его столбцах.
  5. Считать с клавиатуры двумерный массив размером 7 на 5, поменять местами столбцы с максимальной и минимальной суммой.
  6. Считать с клавиатуры двумерный массив размером 5 на 5, вывести суммы элементы на его диагоналях.

Работа с файлами

  1. Открыть файл 1.txt на чтение, считать из него число типа int.
  2. Открыть файл 1.txt на запись, записать в него ”hello, world!”
  3. Подсчитать число символов в файле с помощью цикла по всем символам файла.

Вложенные циклы

  1. Вывести таблицу вида

    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
    

    В тексте программы должно быть только два оператора цикла while или for и только один printf.

  2. Вывести таблицу вида

    1
    1 2
    1 2 3
    1 2 3 4
    1 2 3 4 5
    

    В тексте программы должно быть только два оператора цикла while или for и только один printf.

  3. Вывести таблицу вида

    1 2 3 4 5
    1 2 3 4
    1 2 3
    1 2
    1
    

    В тексте программы должно быть только два оператора цикла while или for и только один printf.

  4. Вывести таблицу вида

    1
    1 2
    1 2 3
    1 2 3 4
    1 2 3 4 5
    1 2 3 4
    1 2 3
    1 2
    1
    

    В тексте программы должно быть только два оператора цикла while или for, один printf и один условный оператор.

Массивы

  1. Считать массив из 10 элементов, затем напечатать слово “массив” и вывести все его элементы через пробел
  2. Считать массив из 10 элементов, затем посчитать среднее арифметическое элементов массива и вывести его.
  3. Считать массив из 10 элементов, затем считать ещё одно число X. Вывести индексы всех элементов, равных X. Если нет ни одного такого элемента, ничего не выводить.
  4. Считать массив из 10 элементов, затем считать ещё одно число X. Вывести индекс первого элемента слева, равного X. Если такой элемент не найден, вывести “Не найдено”.
  5. Считать массив из 10 элементов, затем считать ещё одно число X. Вывести индекс первого элемента справа, равного X. Если такой элемент не найден, вывести “Не найдено”.
  6. Считать массив из 10 элементов, затем считать ещё одно число X. Вывести индекс максимального элемента массива и его значение.
  7. Есть массив из 10 чисел, вывести наибольшее чётное произведение соседних элементов. Соседними считаются элементы, индексы которых отличаются на единицу.
  8. Пользователь вводит два массива, по 5 чисел каждый. Программа должна вывести “Equal”, если содержимое массивов одинаково, и “Not Equal”, если нет.
  9. Пользователь вводит массив из 10 элементов, надо проверить, является ли он палиндромом (содержимое массива-палиндрома симметрично относительно центра, например 1 2 3 3 2 1 – палиндром из 6 элементов). Вывести “палиндром” или “не палиндром”.

Строки

  1. Пользователь вводит две строки, не более 80 символов каждая. Ваша программа должна вывести “Equal”, если строки одинаковы, и “Not Equal”, если нет. Использовать библиотечную функцию strcmp.
  2. Пользователь вводит две строки, не более 80 символов каждая. Ваша программа должна вывести “Equal”, если строки одинаковы, и “Not Equal”, если нет. Не использовать библиотечную функцию strcmp.
  3. Написать программу, которая считывает у пользователя строку (считать, что строка не длиннее 80 символов) и заменяет все маленькие буквы на большие. Затем программа выводит эту изменённую строку.
  1. Пользователь вводит строку, определить, является ли она палиндромом.

Сортировки

  1. Пользователь вводит 10 чисел, отсортировать их по возрастанию
  2. Пользователь вводит 10 чисел, отсортировать их по убыванию.

Прочие алгоритмы

  1. Пользователь вводит целое число n, вывести n-ое число Фибоначи. Для вычисления использовать цикл.

  2. Пользователь вводит целое число n, вывести n-ое число Фибоначи. Для вычисления использовать рекурсивную функцию.

  3. Пользователь вводить целые числа a и n, возвести a в степень n c помощью рекурсивной функции быстрого возведения в степень. Использовать соотношение

    \[f(a, 0) = 1\]\[f(a, n) = (f(a, n / 2))^2, \quad если \ n \% 2 == 1\]\[f(a, n) = a * (f(a, (n - 1) / 2))^2, \quad если \ n \% 2 == 0\]