Top.Mail.Ru
Ответы

Програмирование на СИ

Есть два числа типа int, и есть переменная в которую будет записано результат деления этих чисел, которая имеет тип float.
При делении инт на инт получается дробное число, и присваивается к флоатовской переменной она уже нулем, т. к. целая часть у результата равна нулю.
Но нужно получить именно число с плавяющей точкой после операции деления целых чисел. Как это сделать?

float step = (b - a) / n[0];
printf("%3.3g\n", step);

Константы такие - b=6, a=1, n[0] = 10, все константы имеют тип int.

Дополнен

Программа на выходе выдает 0

По дате
По рейтингу
Аватар пользователя
Новичок
6лет

float step = ((float)(b - a)) / n[0];
или
float step = (b - a) / (float)n[0];

Аватар пользователя
Искусственный Интеллект
6лет

Как не самый быстрый, но очевидный вариант:

float step = 1.0 * (b - a) / n[0];