Нужно разделить две переменные 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, например, ноль.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей