Практика в С++. Часть №19

  Юрий  | 

  Обновл. 12 Янв 2020  | 

 3634

 ǀ   23 

Здесь размещены задания по С++, которые вы можете выполнить. Каждое задание имеет свой уровень сложности, готовых ответов не будет, поэтому welcome в комментарии.

Easy: Задание №1

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

Пример выполнения программы:

Введите строку: Привет! Меня зовут Андрей. Я обожаю петь.
Результат: ПриветМенязовутАндрейЯобожаюпеть

Medium: Задание №2


Ввести целое число N. Создать массив из N целых чисел (сгенерировать рандомно). Определить индекс наибольшего элемента массива.

Hard: Задание №3

Написать программу проверки знания таблицы умножения. Программа должна вывести 10 примеров и выставить оценку: за 10 правильных ответов — «отлично», за 8 или 9 правильных ответов — «хорошо», за 6 или 7 правильных ответов — «удовлетворительно», остальные варианты — «плохо».


Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (5 оценок, среднее: 5,00 из 5)
Загрузка...

Комментариев: 23

  1. Аватар Анастасия:

    Моё решение задания №3 (добавила таймер на ответ для азарта):

  2. Аватар Анастасия:

    Моё решение задания №2:

  3. Аватар Анастасия:

    Моё решение задания №1:

  4. Аватар Shom:

    Задание №3.

  5. Аватар Shom:

    Задание №2.

    1. Аватар Анастасия:

      Мне понравилась Ваша идея генерить в том числе случайные отрицательные числа, присваивая элементам массива rand() — rand().
      И ещё понравилось, что обошлось без временной переменной для максимального элемента, хотя в этом Вы не были первым, кто-то ниже тоже так делал.

  6. Аватар Shom:

    Задание №1. Корректировка 1.

    Вспомнил о существовании switch-case'ов когда увидел решение этой задачи от Алёны. И, заодно, опечатку исправил из прошлого своего варианта решения.

  7. Аватар Shom:

    Задание №1.

  8. Аватар Владимир:

    Задание №3:

    1. Аватар Анастасия:

      Владимир, мне понравилась Ваша идея проверять пример на повтор. Можно было бы доработать и проверять в обе стороны., меняя A и B местами.
      Не понравилось название переменных для количества правильных и неправильных ответов. Количество неправильных ответов можно было бы и не считать (если нужно выводить количество неправильных ответов, выводите 10-a)
      И булева переменная flag просто лишняя. Если её убрать, ничего не изменится.

  9. Аватар Владимир:

  10. Аватар Владимир:

    1. Аватар Анастасия:

      ispunct() — это гениально, не знала, что такое есть. Я захотела проверить, будет ли это работать с кириллицей, и у меня не получилось. Если ввести строку на кириллице, возникает run-time ошибка. Очень жаль. С латиницей нормально работает.
      Поэтому, я считаю, строчка

      не нужна. Я думала, это магия, которая позволит работать с кириллицей. Но нет.

  11. Аватар Алена:

    Задача 2.

  12. Аватар Алена:

    Задача 1.

  13. Аватар Илья:

    Задание 3:

  14. Аватар Илья:

    Задание 2:

    1. Аватар Владимир:

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

  15. Аватар Илья:

    Задание 1:

    1. Аватар Kris:

      У вас string.erase() работает за O(n), т.е. долго, ибо в памяти хранится как C-style строка. Удалять в цикле таким образом слишком дорого. Лучше записывайте в отдельный массив и потом скопируйте обратно, это будет в разы быстрее. Ваше решение работает за O(n^2), с записью в доп. массив будет работать за O(n), на порядок быстрее.

  16. Аватар Пётр:

    Вторая задача:

    1. Аватар Cola:

      Хотя бы комментарии сделали что-ли..

    2. Аватар Анастасия:

      Пётр, если Вы меня читаете: на будущее давайте переменным более говорящие названия, тогда другим Ваш код будет читать не столь мучительно.
      И у Вашего решения есть ещё один недочёт: Вы заводите массив х длиной 1000, что потянет не каждый стэк. А самое обидное, что Вы всё равно используете только то количество элементов, которое вводит пользователь. А ведь он может ввести и большее количество! И вообще, если уж даёте такую ответственность пользователю, то было бы неплохо 1) указать ему, что именно он должен ввести 2) проверить его ввод на ошибки.

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *