Нужно разделить две переменные i
и j
. Но при делении i/j
выводится 0 (j > i
). Как исправить?
int n;
cin >> n;
double otv;
for(int i = 2;i<=n-1;i++){
for(int j = 3;j<=n;j++){
otv += (i*1.0)/j;
}
}
cout << fixed << setprecision(6) << otv;
Для начала - а инициализировать
double otv;
должен Дейкстра? :)
И еще - я бы переписал вот так:
int n;
cin >> n;
double otv = 0.0;
for(int i = 2; i < n; i++)
{
for(int j = 3; j <= n; j++)
{
otv += double(i)/j;
}
}
cout << fixed << setprecision(6) << otv;
Все считается и выводится нормально...
Кстати, ваш вопрос
Но при делении i/j выводится 0 (j > i). Как исправить?
получил у вас же ответ - в виде умножения на 1.0
, т.е. на вычисление результата как деления двух чисел double
. Так что зачем вы спрашиваете то, на что ответили сами - непонятно. Я обошел это иначе - приведением одного из значений к double
.
Без этого выполняется целочисленное деление, которое при j>i
дает нуль.
Нужно просто указать какое-то значение переменной otv, например, ноль.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Как можно пройтись по всем файлам в папке, не используя лист с именами всех папок?
Скажите, будет ли быстрее это творение работать, если вместо механизма typeid, приведенного здесь, использовать std::is_same?
По долгу службы пришлось иметь дело с трёхмерными векторамиПодкиньте примерчик создания, и работы с трёхмерным вектором, в котором вложенные...