В соответствии со стандартом C-99, раздел 7.19.6.1, параграф 9
Если спецификация преобразования недопустима, поведение не определено.251) Если какой-либо аргумент не является правильным типом для соответствующего преобразованияспецификации, поведение не определено.
halffirst
и quotient
определяется как int
, но в вызовах printf
вы используете %lf
, который является спецификатором для double
printf("\n%20s%20lf", "Half (1st #)", halffirst);
printf("\n%20s%20lf", "Quotient", quotient);
Это неопределенное поведение в соответствии со стандартом.
Используйте %d
для печати целых чисел
printf("\n%20s %d", "Half (1st #)", halffirst);
printf("\n%20s %d", "Quotient", quotient);
ИЛИ, приведите целые числа к float
перед передачей
printf("\n%20s%20lf", "Half (1st #)", (float)halffirst);
printf("\n%20s%20lf", "Quotient", (float)quotient);
или введите int
для плавания перед передачей.