Имеется код:
#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)). Не могу найти, где ошибка в логике
Знак деления на int считает целочисленное деление, вам надо преобразовать в double
Y+=1.0/h
Сборка персонального компьютера от Artline: умный выбор для современных пользователей