Задачи по языку С



         

Пояснения:


Основные типы 3.1

вначале d=3.2, i=2 x = (y=d/i)*2 (x=(y=3.2/2)*2)
(x=(y=1.6)*2) 3.2 - число двойной точности, этот тип выше типа int, типа числа 2, поэтому частное тоже будет двойной точности. Так как y - целое, то у значения 1.6 будет отброшена дробная часть
(x=1*2) и y=1

(x=2) 2 и y=1

Основные типы 3.2

вначале d=3.2, i=2 y = (x=d/i)*2 (y=(x=1.6)*2)
(y=1.6*2) и x=1.6 Так как x - типа double, то и результат присваивания будет типа double.
(y=3.2) Тип 1.6 - double определяет и тип произведения.
3 и y=3 Так как y типа int, то у 3.2 должна быть отброшена дробная часть

Основные типы 3.3

вначале d=3.2, i=2 y = d * (x=2.5/d) (y=(d*(x=2.5/d))
(y=d*2.5/d) и x=2.5/d Тип x - double, так что у 2.5/d точность сохраняется.
(y=2.5) 2 и y=2 Тип y заставляет отбросить дробную часть у 2.5

Основные типы 3.4

вначале d=3.2, i=2 x = d * (y = ((int)2.9+1.1)/d)
(x=d*(y=(2+1.1)/d)) Операция приведения более высокого порядка, чем операция +.
(x=d*(y=3.1/d)) (x=d*(y=нечто))
(x=d*0) и y=0 y получит значение 0 независимо от величины "нечто", поскольку "нечто" находится между 0 и 1.
0 и x=0

О смешении типов. К этому моменту было уже много примеров, когда смешивание целых значений и значений с плавающей точкой приводило к неожиданным результатам в выражениях. Лучше всего избегать арифметических действий с операндами разных типов. Если же это необходимо, то применять явные приведения типов.




Содержание  Назад