Прежде всего, вместо объявления float height;
, вам нужно объявить struct HealthProfile H;
. Еще лучше объявить struct HealthProfile profile;
и заменить H
везде на profile
.
Далее исправьте ваши scanf()
заявления. Например
scanf("%s", &H.name);
должно быть
scanf("%s", profile.name);
Аналогично изменить
scanf("%f", &H.height);
до
scanf("%f", profile.height);
Теперь ваш синтаксис для printf()
будет правильным.
Однако, у вас все еще будут проблемы, потому что ни одному из ваших указателей не было выделено памяти. Объявление полей name
и last
как указателей имеет смысл. Тем не менее, я думаю, вы должны объявить float height;
и float weight;
вместо использования указателей для этих значений. Если вы это сделаете, то ваши исходные операторы scanf()
с оператором &
будут правильными.