Неверный расчёт значения переменной

244
06 октября 2017, 17:34

Имеется код:

#include "stdafx.h"
#include <stdio.h>

void main()
{
    long int S = 0, F = 1, A = 0, B = 1, m, n, h;
    float Y = 0, X = 0;
    printf("Vvedite n\n");
    scanf_s("%d", &n);
    printf("Vvedite m\n");
    scanf_s("%d", &m);
    for (h = 1; h <= n; h++) {
        S += h;
        F *= h;
        Y += 1 / h;
    }
    for (h = 0; h <= n; h++) {
        A += m + h;
        B *= m + h;
        X += 1 / (m + h);
    }
    printf("%d\n%d\n%d\n%f\n%f\n%d\n", S, F, A, X, Y, B);
}

Задача - посчитать значения переменных. Все считает верно, кроме У (1+1/2+1/3+ ... +1/n) и X (1/m+1/(m+1)+ ... +1(m+n)). Не могу найти, где ошибка в логике

Answer 1

Знак деления на int считает целочисленное деление, вам надо преобразовать в double

Y+=1.0/h
READ ALSO
C++ - std::mutex на разных платформах

C++ - std::mutex на разных платформах

В моем приложении осуществляется отрисовка и расчет положения шариков в разных потокахДля управления доступом к разделяемым данным (координатам...

316
Как проверить работу holdReady jquery?

Как проверить работу holdReady jquery?

Почему alert выводится? $holdReady(true); alert(777); Какой наглядный пример может показать работу данного метода?

228
datapicker на мобильной версии

datapicker на мобильной версии

при разрешении 615х862 и ниже datepicker полностью рушится все дни просто идут в один столбец, как сделать что бы на мобильных устройствах вызывался...

325