математика — в c ++ с использованием ceil разделение не работает?

ну, я попробовал это
это не работает
с Ceil в C ++

int n, m, a;
double r1, r2;
cin >> n;
cin >> m;
cin >> a;
r1 = (n/a);
r2 = (m/a);
cout << (ceil(r1)*ceil(r2));

операция n / a должна вернуть значение double в случае n = 3 и a = 2, но это не так

также..

операция m / a должна возвращать удвоение в случае m = 3 и a = 2, но это не так

0

Решение

поскольку n, m, а также a все типа int, n/a а также m/a также будут целыми числами, что означает, что 3/2 будет равен 1. Изменение n а также m печатать double должен решить эту проблему.

0

Другие решения

Здесь проблема,
n/a а также m/a будет вычислять целые числа, так как n, m, a являются целыми числами, а целое число будет сохранено в double, чтобы избежать этого, вы можете набрать приведение вот так

r1=(double)n/a;
r2=(double)n/a;

Или просто измените тип данных с int на double,
возможно (это поможет вам # А. Театральная площадь)

0