Где я могу найти решения «Попробуйте это» в книге Страуструпа «Принципы и практика программирования»?

Мне просто нужно перепроверить свои мысли, но я не могу найти никаких решений, размещенных в Интернете.

Буду рад, если вы мне поможете, потому что я поставил себе цель выучить c++ на каникулах.

В частности, мне нужна помощь с функциональным упражнением, это то, что у меня есть до сих пор:

//(not using multiplication)
int square(int a)
{
    int result = 0;
    int count = 0;
    while (count < a)
    {
        result += result;
        ++count;
        return result;
    }
}

int main()
{
        int x = 0;
        x = square(5);
        cout << x;
}

Но мой результат равен 0.

result начинается с 0 и 0 += 0 === 0. возможно, вам нужно было что-то сделать с a?
Claies 20.12.2020 21:24

Да, ты прав, мой мозг сейчас в отпуске

NickNameNick 20.12.2020 21:38

Только для удобства чтения кода я предлагаю использовать цикл for вместо цикла while.

Gary Strivin' 21.12.2020 00:19
Почему в Python есть оператор &quot;pass&quot;?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
2
3
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

result есть 0, поэтому добавление его к самому себе, независимо от того, сколько раз, приведет к 0. Если вы пытаетесь возвести в квадрат a, вы должны добавить это к result. Кроме того, оператор return должен быть вне цикла, а не внутри него:

int square(int a)
{
    int result = 0;
    int count = 0;
    while (count < a)
    {
        result += a; // Here!
        ++count;
    }
    return result;
}

Я чувствую себя таким тупым xD, спасибо. Можете ли вы помочь с поиском решений? Я не могу спросить здесь обо всех проблемах, с которыми сталкиваюсь. Да, и еще, есть ли способ напечатать только окончательный результат, например a*a, а не все вычисления?

NickNameNick 20.12.2020 21:37

@NickNameNick вы можете вывести результат вызова функции, например, cout << square(7) << endl;.

Mureinik 20.12.2020 21:38

Другие вопросы по теме