Ваши спецификаторы формата верны, но вы умножаете num1
на num2
перед инициализацией либо вызовом scanf
.Если вы переместите инициализацию total_multi
после вызова на scanf
, у вас не возникнет этой проблемы.
Кроме того, при использовании scanf
для чтения ввода пользователя настоятельно рекомендуется проверить, что еговозвращаемое значение соответствует количеству спецификаторов формата в строке формата:
double num1, num2;
double total_multi;
if(scanf("%lf %c %lf", &num1, &symbol, &num2) != 3)
{
/* Handle scanf failure */
}
total_multi = num1 * num2;
В менее срочной заметке %lf
в строке формата printf
(вместо scanf
) является избыточным, поскольку %f
применяется к типу double
и float
значения автоматически повышаются до double
.