Проблема с делением. C++

232
20 февраля 2017, 17:36

Нужно разделить две переменные 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;
Answer 1

Для начала - а инициализировать

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 дает нуль.

Answer 2

Нужно просто указать какое-то значение переменной otv, например, ноль.

READ ALSO
Работа с файлами в Qt

Работа с файлами в Qt

Как можно пройтись по всем файлам в папке, не используя лист с именами всех папок?

422
typeid или std::is_same для any? кто быстрее

typeid или std::is_same для any? кто быстрее

Скажите, будет ли быстрее это творение работать, если вместо механизма typeid, приведенного здесь, использовать std::is_same?

269
Трёхмерный std::veсtor

Трёхмерный std::veсtor

По долгу службы пришлось иметь дело с трёхмерными векторамиПодкиньте примерчик создания, и работы с трёхмерным вектором, в котором вложенные...

350
SQL составной Primary key и Foreign key

SQL составной Primary key и Foreign key

Имеется БД с двумя таблицами

339