Здесь размещены задания по С++, которые вы можете выполнить. Каждое задание имеет свой уровень сложности. Готовых ответов не будет, поэтому welcome в комментарии!
Easy: Задание №1
Напишите программу, которая удаляет из строки, введенной пользователем, все пробелы и знаки препинания.
Пример результата выполнения программы:
Введите строку: Привет! Меня зовут Андрей. Я обожаю петь.
Результат: ПриветМенязовутАндрейЯобожаюпеть
Medium: Задание №2
Пользователь вводит целое число N
. Создайте массив из N
целых чисел (числа генерируются рандомно). Определите индекс наибольшего элемента массива.
Hard: Задание №3
Напишите программу проверки знания таблицы умножения. Программа должна вывести 10 примеров и выставить оценку: за 10 правильных ответов — «отлично», за 8 или 9 правильных ответов — «хорошо», за 6 или 7 правильных ответов — «удовлетворительно», остальные варианты — «плохо».
Задание №2
Задание №3
3 задача
Задание №3:
Задание №1:
Задание №2:
Задание 1:
Задание 2:
Задание 3:
Задание 3
Задание 3
main.cpp
Random.h
Random.cpp
UserInput.h
Моё решение задания №3 (добавила таймер на ответ для азарта):
Моё решение задания №2:
Моё решение задания №1:
Задание №3.
Задание №2.
Мне понравилась Ваша идея генерить в том числе случайные отрицательные числа, присваивая элементам массива rand() — rand().
И ещё понравилось, что обошлось без временной переменной для максимального элемента, хотя в этом Вы не были первым, кто-то ниже тоже так делал.
Задание №1. Корректировка 1.
Вспомнил о существовании switch-case'ов когда увидел решение этой задачи от Алёны. И, заодно, опечатку исправил из прошлого своего варианта решения.
Задание №1.
Задание №3:
Владимир, мне понравилась Ваша идея проверять пример на повтор. Можно было бы доработать и проверять в обе стороны., меняя A и B местами.
Не понравилось название переменных для количества правильных и неправильных ответов. Количество неправильных ответов можно было бы и не считать (если нужно выводить количество неправильных ответов, выводите 10-a)
И булева переменная flag просто лишняя. Если её убрать, ничего не изменится.
ispunct() — это гениально, не знала, что такое есть. Я захотела проверить, будет ли это работать с кириллицей, и у меня не получилось. Если ввести строку на кириллице, возникает run-time ошибка. Очень жаль. С латиницей нормально работает.
Поэтому, я считаю, строчка
не нужна. Я думала, это магия, которая позволит работать с кириллицей. Но нет.
Задача 2.
Задача 1.
Задание 3:
Задание 2:
Илья, запрашиваете у пользователя длину массива, а присваиваете значения фиксированно 10 элементам массива, независимо от ввода пользователя. В конце кода забыли освободить выделенную память под динам. массив
Задание 1:
У вас string.erase() работает за O(n), т.е. долго, ибо в памяти хранится как C-style строка. Удалять в цикле таким образом слишком дорого. Лучше записывайте в отдельный массив и потом скопируйте обратно, это будет в разы быстрее. Ваше решение работает за O(n^2), с записью в доп. массив будет работать за O(n), на порядок быстрее.
Вторая задача:
Хотя бы комментарии сделали что-ли..
Пётр, если Вы меня читаете: на будущее давайте переменным более говорящие названия, тогда другим Ваш код будет читать не столь мучительно.
И у Вашего решения есть ещё один недочёт: Вы заводите массив х длиной 1000, что потянет не каждый стэк. А самое обидное, что Вы всё равно используете только то количество элементов, которое вводит пользователь. А ведь он может ввести и большее количество! И вообще, если уж даёте такую ответственность пользователю, то было бы неплохо 1) указать ему, что именно он должен ввести 2) проверить его ввод на ошибки.