Рейтинг:
1
Jochen Arndt
Пусть петля идет вниз. А потом ... exponent
значение может быть присвоено переменной цикла изначально. Потому что Вы тоже должны инициализировать результат и будете использовать exponent
, это должно быть сделано после инициализации переменной цикла. К Счастью, C/C++ for
циклы допускают несколько операторов в выражении init.
Собрав все это вместе и инициализировав результат одним, чтобы получить правильный результат, когда exponent
равен нулю (требуется на одну итерацию больше, чем в вашем коде):
for (int i = exponent - 1, exponent = 1; i >= 0; i--)
{
exponent *= base;
}
Member NFOC
Спасибо, что помогло. Кроме того, я нашел еще один подобный код, как ваш, сделав некоторые корректировки, как это:
int a;
int b;
с std::соиь <&ЛТ; "давайте найдем силы в:" &ЛТ;&ЛТ; функция std::епси;
std::cout << "введите b: ";
std::cin >> b;
std::cout << "введите a: ";
std::cin >> a;
для (int i = b-1 , b = 1; i >= 0; i--) {
/и std::соиь <&ЛТ; "б:" &ЛТ;&ЛТ; б &ЛТ;&ЛТ; функция std::епси;
b *= a;
/и std::соиь <&ЛТ; "я:" &ЛТ;&ЛТ; я &Л;&Л; функция std::епси;
если (i == 0) {
с std::соиь <&ЛТ; "б:" &ЛТ;&ЛТ; б &ЛТ;&ЛТ; функция std::епси;
}
}
Jochen Arndt
Это идентично, кроме использования разных имен переменных и печати результата внутри цикла. Последнее даже неверно, потому что ничего не будет напечатано, когда показатель степени равен нулю (тогда тело цикла никогда не вводится).
Member NFOC
Сэр, я думаю, что ваш код также не соответствует заранее определенным условиям. Поскольку ваш код принимает более трех переменных(три переменные должны быть такими: две для экспонент и базы и одна для цикла for), взяв b внутри цикла, вы создаете код, подобный этому:
for (int i = 0, result = 1; i < expo; i++ ) {
результат *= база;
}
Nelek
элегантный, приятный :)
Member NFOC
Я думаю, что ваш код также не соответствует заранее определенным условиям. Поскольку ваш код принимает более трех переменных(три переменные должны быть такими: две для экспонент и базы и одна для цикла for), взяв b внутри цикла, вы создаете код, подобный этому:
for (int i = 0, result = 1; i < expo; i++ ) {
результат *= база;
}