Мне просто нужно перепроверить свои мысли, но я не могу найти никаких решений, размещенных в Интернете.
Буду рад, если вы мне поможете, потому что я поставил себе цель выучить 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.
Да, ты прав, мой мозг сейчас в отпуске
Только для удобства чтения кода я предлагаю использовать цикл for
вместо цикла while
.
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 вы можете вывести результат вызова функции, например, cout << square(7) << endl;
.
result
начинается с0
и0 += 0 === 0
. возможно, вам нужно было что-то сделать сa
?