По условию задачи нужно вывести логарифм по основанию 2 от числа. Но в функции где-то бесконечный цикл. Помогите его найти.
#include <iostream>
using namespace std;
int log(int x) {
int k = 0;
do {
x/2;
k++;
}
while (x >= 2)
return k;
}
int main() {
int c, a, p;
cin >> c; //тут я ввожу 5, т.к. по заданию нужно найти 5 логарифмов
for (int i = 0; i<c; i++) {
cin >> a; //само число, от которого нужно найти логарифм
p = log(a);
cout << p << '\n';
}
}
do {
x/2;
k++;
}
x/2
думаю у тебя должна присваиваться) x = x/2;
do {
x/2;
k++;
}
while (x >= 2)
У вас в функции значение x
не изменяется - результат деления не присваивается ничему...
Наверное, вы хотели написать x/=2
? :)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго времени сутокПытаюсь написать программу, которая может добавлять произвольному пользователю привилегию (ну для примера SeSystemtimePrivilege)
Необходимо написать программу для распознавания лиц на фотографиях, и по идентифицированным лицам осуществить сортировку фотоСтоит ли использовать...
Ранее работая в среде разработки - DEV-C++ Для написания таблицы я использовал сочетании клавиш Alt+[введенный код фрагмента таблицы(ASCI-кода)]К...