C++ Исходник Решение задачи из курса [Udemy] Артём Баданов - Изучение C++ с нуля.

Начинающий
Статус
Оффлайн
Регистрация
12 Дек 2020
Сообщения
67
Реакции[?]
10
Поинты[?]
0
Всем привет! Недавно нашёл слив курса Артёма Баданова на юг, и застрял на задание номер 9 пункт A,потом всё же решил её, и хочу поделится решением с объяснениями людям которые так же проходят этот курс. Снизу будет код и условие задачи.9.1 Zadanie9.png
C++:
#include <iostream> // для std::cout и std::endl


// Объявление функции main()
int main()
{
    // объявляем три целочисленных переменных
    int n, days = 0, coins = 30;
    /*1. n - это переменная в которую пользователь вводить сколько монет будет тратиться ежедневно
    *2. Дни равны нули, потому что с каждым "тиком" цикла они будут прибавлятся.
    * 3.coins - Монет по условию нам дали 30.
    */

    // Просим пользователя ввести, сколько монет будет проигрываться за день.
    std::cout << "Enter n: ";
    std::cin >> n;


    while (coins > 0) /*Пока монеты будут больше 0, дни будут прибавлятся, а из монет будут вычитать n.
                      Потом когда всё же монеты стали равны нулю мы выходим из цикла и выводим на экран дни*/
    {
        ++days;
        coins -= n;
    }
    std::cout << days;
    return 0;
}
 
Последнее редактирование модератором:
09-29-2022 Thu 18:48:59
Эксперт
Статус
Оффлайн
Регистрация
28 Ноя 2019
Сообщения
1,214
Реакции[?]
405
Поинты[?]
102K
такое решит даже восьмилетний ребенок
как можно было на таком застрять?
 
Пользователь
Статус
Оффлайн
Регистрация
16 Май 2021
Сообщения
276
Реакции[?]
37
Поинты[?]
3K
Круто,с делаешь мне резольвер , который будет лоудельту в 0 патрон фиксить?
 
Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2019
Сообщения
839
Реакции[?]
135
Поинты[?]
0
Весело
 
Участник
Статус
Оффлайн
Регистрация
11 Апр 2019
Сообщения
1,118
Реакции[?]
307
Поинты[?]
3K
Всем привет! Недавно нашёл слив курса Артёма Баданова на юг, и застрял на задание номер 9 пункт A,потом всё же решил её, и хочу поделится решением с объяснениями людям которые так же проходят этот курс. Снизу будет код и условие задачи.Посмотреть вложение 162776
C++:
#include <iostream> // для std::cout и std::endl


// Объявление функции main()
int main()
{
    // объявляем три целочисленных переменных
    int n, days = 0, coins = 30;
    /*1. n - это переменная в которую пользователь вводить сколько монет будет тратиться ежедневно
    *2. Дни равны нули, потому что с каждым "тиком" цикла они будут прибавлятся.
    * 3.coins - Монет по условию нам дали 30.
    */

    // Просим пользователя ввести, сколько монет будет проигрываться за день.
    std::cout << "Enter n: ";
    std::cin >> n;


    while (coins > 0) /*Пока монеты будут больше 0, дни будут прибавлятся, а из монет будут вычитать n.
                      Потом когда всё же монеты стали равны нулю мы выходим из цикла и выводим на экран дни*/
    {
        ++days;
        coins -= n;
    }
    std::cout << days;
    return 0;
}
Очень легкая задача, а еще сделано плохо, если ввести отрицательное число в N, то будет пиздец)
Так правильнее будет
Код:
#include <iostream> // для std::cout и std::endl

// Объявление функции main()
int main()
{
    setlocale(LC_ALL, "Russian");
    // объявляем три целочисленных переменных
    int n, days = 0, coins = 30;
    /*1. n - это переменная в которую пользователь вводить сколько монет будет тратиться ежедневно
    *2. Дни равны нули, потому что с каждым "тиком" цикла они будут прибавлятся.
    * 3.coins - Монет по условию нам дали 30.
    */

    // Просим пользователя ввести, сколько монет будет проигрываться за день.
    std::cout << "Enter n: ";
    std::cin >> n;
    if (n <= 0) // проверяем, выйгрывает ли он
    {
        std::cout << "он выйгрывает.";
        return 0;
    }
    while (coins > 0) /*Пока монеты будут больше 0, дни будут прибавлятся, а из монет будут вычитать n.
                      Потом когда всё же монеты стали равны нулю мы выходим из цикла и выводим на экран дни*/
    {
        ++days;
        coins -= n;
    }
    std::cout << days;
    return 0;
}
до:1627285093895.pngпосле:1627285074803.png
 
Продавец
Статус
Оффлайн
Регистрация
28 Окт 2019
Сообщения
1,141
Реакции[?]
304
Поинты[?]
3K
Очень легкая задача, а еще сделано плохо, если ввести отрицательное число в N, то будет пиздец)
Так правильнее будет
Код:
#include <iostream> // для std::cout и std::endl

// Объявление функции main()
int main()
{
    setlocale(LC_ALL, "Russian");
    // объявляем три целочисленных переменных
    int n, days = 0, coins = 30;
    /*1. n - это переменная в которую пользователь вводить сколько монет будет тратиться ежедневно
    *2. Дни равны нули, потому что с каждым "тиком" цикла они будут прибавлятся.
    * 3.coins - Монет по условию нам дали 30.
    */

    // Просим пользователя ввести, сколько монет будет проигрываться за день.
    std::cout << "Enter n: ";
    std::cin >> n;
    if (n <= 0) // проверяем, выйгрывает ли он
    {
        std::cout << "он выйгрывает.";
        return 0;
    }
    while (coins > 0) /*Пока монеты будут больше 0, дни будут прибавлятся, а из монет будут вычитать n.
                      Потом когда всё же монеты стали равны нулю мы выходим из цикла и выводим на экран дни*/
    {
        ++days;
        coins -= n;
    }
    std::cout << days;
    return 0;
}
до:Посмотреть вложение 162787после:Посмотреть вложение 162786
Раз уж на то пошло, то зачем делать целую ветвь цикла если можно просто добавить && n => 0 в цикл проверки while
В условии всеравно ведь четко указано, что игрок может лишь проигрывать, поэтому достаточно лишь проверки в цикл,чтобы пользователь не сломал программу
 
Начинающий
Статус
Оффлайн
Регистрация
12 Дек 2020
Сообщения
67
Реакции[?]
10
Поинты[?]
0
Очень легкая задача, а еще сделано плохо, если ввести отрицательное число в N, то будет пиздец)
Так правильнее будет
Код:
#include <iostream> // для std::cout и std::endl

// Объявление функции main()
int main()
{
    setlocale(LC_ALL, "Russian");
    // объявляем три целочисленных переменных
    int n, days = 0, coins = 30;
    /*1. n - это переменная в которую пользователь вводить сколько монет будет тратиться ежедневно
    *2. Дни равны нули, потому что с каждым "тиком" цикла они будут прибавлятся.
    * 3.coins - Монет по условию нам дали 30.
    */

    // Просим пользователя ввести, сколько монет будет проигрываться за день.
    std::cout << "Enter n: ";
    std::cin >> n;
    if (n <= 0) // проверяем, выйгрывает ли он
    {
        std::cout << "он выйгрывает.";
        return 0;
    }
    while (coins > 0) /*Пока монеты будут больше 0, дни будут прибавлятся, а из монет будут вычитать n.
                      Потом когда всё же монеты стали равны нулю мы выходим из цикла и выводим на экран дни*/
    {
        ++days;
        coins -= n;
    }
    std::cout << days;
    return 0;
}
до:Посмотреть вложение 162787после:Посмотреть вложение 162786
а у меня к тебе вопрос, он отрицательные числа в день тратит?
а у меня к тебе вопрос, он отрицательные числа в день тратит?
или может в задаче где-то сказано,что он выигрывает? Не еб* мозги
 
Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2019
Сообщения
839
Реакции[?]
135
Поинты[?]
0
Продавец
Статус
Оффлайн
Регистрация
28 Окт 2019
Сообщения
1,141
Реакции[?]
304
Поинты[?]
3K
а у меня к тебе вопрос, он отрицательные числа в день тратит?

или может в задаче где-то сказано,что он выигрывает? Не еб* мозги
Если твоя программа продолжает выполнять алгоритмы при неверно введенных данных для ее задачи, то такая программа считается неверно написанной
 
Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2019
Сообщения
839
Реакции[?]
135
Поинты[?]
0
Если твоя программа продолжает выполнять алгоритмы при неверно введенных данных для ее задачи, то такая программа считается неверно написанной
его введенные данные должны быть по факту положительные,так что бред несешь
 
Продавец
Статус
Оффлайн
Регистрация
28 Окт 2019
Сообщения
1,141
Реакции[?]
304
Поинты[?]
3K
его введенные данные должны быть по факту положительные,так что бред несешь
Программа непонимает эту должность, если например пользователь введет отрицательное число правильная программа должна вывести ошибку, а не продолжать алгоритм
 
Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2019
Сообщения
839
Реакции[?]
135
Поинты[?]
0
Программа непонимает эту должность, если например пользователь введет отрицательное число правильная программа должна вывести ошибку, а не продолжать алгоритм
ну давай миллион проверок сделаем для простой программы,при том что человек только начинает
 
Забаненный
Статус
Оффлайн
Регистрация
22 Мар 2021
Сообщения
1,019
Реакции[?]
315
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Очень легкая задача, а еще сделано плохо, если ввести отрицательное число в N, то будет пиздец)
Так правильнее будет
Код:
#include <iostream> // для std::cout и std::endl

// Объявление функции main()
int main()
{
    setlocale(LC_ALL, "Russian");
    // объявляем три целочисленных переменных
    int n, days = 0, coins = 30;
    /*1. n - это переменная в которую пользователь вводить сколько монет будет тратиться ежедневно
    *2. Дни равны нули, потому что с каждым "тиком" цикла они будут прибавлятся.
    * 3.coins - Монет по условию нам дали 30.
    */

    // Просим пользователя ввести, сколько монет будет проигрываться за день.
    std::cout << "Enter n: ";
    std::cin >> n;
    if (n <= 0) // проверяем, выйгрывает ли он
    {
        std::cout << "он выйгрывает.";
        return 0;
    }
    while (coins > 0) /*Пока монеты будут больше 0, дни будут прибавлятся, а из монет будут вычитать n.
                      Потом когда всё же монеты стали равны нулю мы выходим из цикла и выводим на экран дни*/
    {
        ++days;
        coins -= n;
    }
    std::cout << days;
    return 0;
}
до:Посмотреть вложение 162787после:Посмотреть вложение 162786
а отрицательное колво монет может быть? Лишняя штука
Это как где-то говорили про нелогичность математики. Типа у меня было -5 коробок где в каждой по -5 бананов. Значит у меня всего было 25 бананов. Тупая математика... Бананы из воздуха появились...
 
Сверху Снизу